在Dota2架构中,项目被分配了一个“defindex”,它似乎是一个唯一的id。 我使用以下调用来获取架构。 http://api.steampowered.com/IEconItems_570/GetSchema/v0001/?key=XXXX
但是,当用蒸汽读取用户的背包时,具有相同“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 } },
以下是两个项目实例,在用户的背包中都有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 } ]
},
您可能会注意到用户背包中的两个项目有所不同 品质(分别为4和12,可能是由于第二项具有涉及其他项目的属性。
问题是如何准确定义用户的项目以进行交易?
仅提供一个defindex = 4122的项目是不够的。从上面的例子来看,似乎我需要说:“我提供了一个defindex = 4122和quality = 12的项目。”但那够了吗?可能需要指定其他特征来准确定义Dota2项目。
有谁知道在哪里可以找到这样的信息/文件?
答案 0 :(得分:2)
您已将项目实例的两个关键元素设为匿名发布此问题。元素id
和original_id
唯一标识特定项目。
original_id
是第一次将对象授予用户时给定的id。在项目的生命过程中,这个id永远不会改变。每次修改项目时id
字段都会更改,或者更改所有权(即交易)。
使用original_id
,可以跟踪项目的历史记录,因为它经历了经济。这就是背包网站拥有历史所有权数据的方式。如果您正在交易,id
就足够了,因为它不会改变,除非用户做了修改它的事情(即:在TF2世界中,添加名称标签或绘制它)。此id
也是SteamBot项目用于完成交易的内容。
一个非常重要的注意事项(至少在TF2世界中):非常罕见的情况可以复制id
。这些是在修补之前存在并被利用的攻击的结果(此时没有已知的重复攻击)或者Steam支持在诈骗尝试中的干预结果。我相信Steam支持已经改变了他们简单地复制项目而不是重新启动新项目的政策,但我无法找到可靠的引用。
根据评论中的问题进行修改
我对DOTA的体验是有限的,但我可以提供基于TF2的答案,并查看架构布局和背包布局做一些有根据的猜测。在TF2中最容易修改的两个字段是quality
和attributes
列表。
可以通过应用Strange Parts和升级kill streak工具包来修改质量。可以通过将化妆品项目应用于项目(名称标签,描述标签,油漆等)来修改属性。
用户无法控制上述两个不同的ID字段,级别(大多数情况下是随机数),库存字段中的数量或值。
这些信息大部分来自here。
答案 1 :(得分:0)
' defindex'是表示特定数组中特定项的键。
例如,396在架构中存在两次:
一次为"暗影恶魔的海角"和#34;活动时间"。但它们是分开的阵列("项目" for" Shadow Demon' Cape""属性"包含"事件时间" )
架构提供有关"属性的信息"这些属于'属性下的模式。阵列。质量"锦标赛":12 的项目具有锦标赛相关属性。
{
"name": "tournament killer id",
"defindex": 312,
"attribute_class": "tournament_killer_id",
"description_string": "#Attrib_TournamentKillerID",
"description_format": "value_is_account_id",
"effect_type": "positive",
"hidden": true,
"stored_as_integer": true
}
{
"name": "tournament id",
"defindex": 315,
"attribute_class": "tournament_id",
"description_string": "#Attrib_TournamentID",
"description_format": "value_is_additive",
"effect_type": "positive",
"hidden": true,
"stored_as_integer": true
}
质量很重要,因为有些品质不可交易,请参阅:http://dota2.gamepedia.com/Quality
item_quality对应于架构中的此数组:
"qualities": {
"normal": 0,
"genuine": 1,
"vintage": 2,
"unusual": 3,
"unique": 4,
"community": 5,
"developer": 6,
"selfmade": 7,
"customized": 8,
"strange": 9,
"completed": 10,
"haunted": 11,
"tournament": 12,
"favored": 13,
"ascendant": 14,
"autographed": 15,
"legacy": 16,
"exalted": 17,
"frozen": 18,
"corrupted": 19,
"lucky": 20
}