Dota2 スキーマでは、アイテムに "defindex" が割り当てられます。これは一意の ID のようです。次の呼び出しを使用してスキーマを取得しました。 http://api.steampowered.com/IEconItems_570/GetSchema/v0001/?key=XXXX
ただし、Steam からユーザーのバックパックを読み取ると、同じ "defindex" を持つアイテムは異なる品質を持ちます。ここで、ユーザーのアイテムを取得するために使用される呼び出し http://api.steampowered.com/IEconItems_570/GetPlayerItems/v0001?key=XXX&SteamID=YYY
たとえば、GetSchema 呼び出しで defindex = 4122 の項目の定義を次に示します。
{ "name": "Seafarer's Shoes", "defindex": 4122, "item_class": "dota_item_wearable", "item_type_name": "#DOTA_WearableType_Shoes", "item_name": "#DOTA_Item_Seafarers_Shoes", "item_description": "#DOTA_Item_Desc_Seafarers_Shoes", "proper_name": false, "item_quality": 4, "image_inventory": "econ/items/kunkka/legs_admirableadmiral", "min_ilevel": 1, "max_ilevel": 1, "image_url": "http://cdn.dota2.com/apps/570/icons/econ/items/kunkka/legs_admirableadmiral.e679e41f99350070d812fe5cd57acda4c83a99a0.png", "image_url_large": "http://cdn.dota2.com/apps/570/icons/econ/items/kunkka/legs_admirableadmiral_large.5a9acb228f9cae6c2d6cb1199ad2bba2f54955d6.png", "item_set": "kunkka_admirable_admiral", "capabilities": { "nameable": true, "can_craft_mark": true, "can_be_restored": true, "strange_parts": true, "paintable_unusual": true, "autograph": true, "can_consume": true, "can_have_sockets": true } }, { "name": "Seafarer's Shoes", "defindex": 4122, "item_class": "dota_item_wearable", "item_type_name": "#DOTA_WearableType_Shoes", "item_name": "#DOTA_Item_Seafarers_Shoes", "item_description": "#DOTA_Item_Desc_Seafarers_Shoes", "proper_name": false, "item_quality": 4, "image_inventory": "econ/items/kunkka/legs_admirableadmiral", "min_ilevel": 1, "max_ilevel": 1, "image_url": "http://cdn.dota2.com/apps/570/icons/econ/items/kunkka/legs_admirableadmiral.e679e41f99350070d812fe5cd57acda4c83a99a0.png", "image_url_large": "http://cdn.dota2.com/apps/570/icons/econ/items/kunkka/legs_admirableadmiral_large.5a9acb228f9cae6c2d6cb1199ad2bba2f54955d6.png", "item_set": "kunkka_admirable_admiral", "capabilities": { "nameable": true, "can_craft_mark": true, "can_be_restored": true, "strange_parts": true, "paintable_unusual": true, "autograph": true, "can_consume": true, "can_have_sockets": true } },
次に示すのはアイテムの 2 つのインスタンスで、両方ともユーザーのバックパックに defindex = 4122 が含まれています。
{ "id": xxxx, "original_id": yyyy, "defindex": 4122, "level": 1, "quality": 4, "inventory": 157, "quantity": 1 }, { "id": zzzz, "original_id": wwww, "defindex": 4122, "level": 1, "quality": 12, "inventory": 172, "quantity": 1, "attributes": [ { "defindex": 185, "value": 1374925866, "float_value": 130837463040 }, { "defindex": 312, "value": 95566398, "float_value": 1.6760434356454931e-035, "account_info": { "steamid": fffff, "personaname": "fly fly" } }, { "defindex": 313, "value": 86741690, "float_value": 8.0673307729579346e-036, "account_info": { "steamid": ggggg, "personaname": "???????" } }, { "defindex": 315, "value": 0, "float_value": 0 }, { "defindex": 316, "value": 0, "float_value": 0 }, { "defindex": 317, "value": 2, "float_value": 2.8025969286496341e-045 }, { "defindex": 318, "value": 254535695, "float_value": 8.4756437840051154e-030 }, { "defindex": 320, "value": 1155752210, "float_value": 1819.033447265625 }, { "defindex": 389, "value": 59, "float_value": 8.2676609395164207e-044 }, { "defindex": 396, "value": 1115, "float_value": 1.562447787722171e-042 }, { "defindex": 397, "value": 1073741824, "float_value": 2 } ]
},
ユーザーのバックパック内の 2 つのアイテムの品質が異なることに気付くかもしれません (それぞれ 4 と 12 です。これはおそらく、2 番目のアイテムが他のアイテムを参照する属性を持っているためです。
問題は、取引目的でユーザーのアイテムを正確に定義するには何が必要かということです。
defindex=4122 のアイテムを提供していると言うだけでは十分ではありません。上記の例から、「defindex=4122 で quality=12 のアイテムを提供しています」と言う必要があるようです。しかし、それで十分ですか?Dota2 アイテムを正確に定義するために指定する必要がある他の特性がある場合があります。
そのような情報/ドキュメントの場所を知っている人はいますか?