steam数据科普

steam数据科普

这里对steam道具的一些字段做一些简单的介绍,方便开发人员理解对应的业务

交易

steam的帐号之间可以通过他人的报价链接,与其他steam帐号进行交易,只要是自己steam帐号库存内运行交易的道具,都可以通过这种方式交易给别人,详细业务可以参见 官方说明

库存

玩家交易的道具都是在自己steam库存中的,只要玩家开放了其的库存隐私,其他人都可以查看玩家公开的库存信息,比如可以在 这里 看到我公开的库存

库存交易

官方并未开放正式的api接口用于道具交易,通常玩家只能在浏览器上,登录后,在自己的steam社区页面给别人报价,或者登录后,点击别人的报价链接来进行报价交易;
我们封装了一个steam机器人,模拟了官方在浏览器上通过报价链接报价进行交易的流程,实现了后台报价交易;
为了通过后台对玩家进行报价交易,有几个必要的参数信息:

所以为了通过我们的机器人给玩家报价,需要玩家提供他自己的报价链接,并且公开他的库存,我们好读取玩家的库存信息

库存字段介绍

上面的玩家库存接口返回的json数据,格式大概是这样

{
    "assets": [
        {
            "appid": 730,
            "contextid": "2",
            "assetid": "13680926359",
            "classid": "310777518",
            "instanceid": "302028390",
            "amount": "1"
        }
    ],
        "descriptions": [
        {
            "appid": 730,
            "classid": "310777518",
            "instanceid": "302028390",
            "currency": 0,
            "background_color": "",
            "icon_url": "-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpos7asPwJf0v73ci9b_8i3mIyCjfLwDLndg25u5cB1g_zMu9qjjVDlrRBqamzzdYOXc1Q-NVHX_QDokOq6jcO5tZ7JzSEwsnFw4nzD30vgZ_ZT_P4",
            "icon_url_large": "-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpos7asPwJf0v73ci9b_8i3mIyCjfLwDLndg25u5cB1g_zMyoD0mlOx5UVqNj3yctWTewM-MF3S-wO-lefogsfq7ZmcwSdmsyMi4SyOl0TlhhtSLrs4dN-aNjc",
            "descriptions": [
                {
                    "type": "html",
                    "value": "外观: 久经沙场"
                },
                {
                    "type": "html",
                    "value": " "
                },
                {
                    "type": "html",
                    "value": "两把具有大弹匣的 Beretta 同时开火会降低精准度,并增加换弹时间。不过你得往好处想,这不,别人只有—把枪,而你可以同时用两把 Beretta 射个痛快。 这把武器以金属涂料进行了涂装,使用结晶外膜制作图案。\n\n<i>人人都想有所作为</i>"
                },
                {
                    "type": "html",
                    "value": " "
                },
                {
                    "type": "html",
                    "value": "湖畔激战收藏品",
                    "color": "9da1a9"
                },
                {
                    "type": "html",
                    "value": " "
                },
                {
                    "type": "html",
                    "value": " "
                }
            ],
            "tradable": 1,
            "actions": [
                {
                    "link": "steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20S%owner_steamid%A%assetid%D343540768138723478",
                    "name": "在游戏中检视…"
                }
            ],
            "name": "双持贝瑞塔 | 钴蓝石英",
            "name_color": "D2D2D2",
            "type": "受限 手枪",
            "market_name": "双持贝瑞塔 | 钴蓝石英 (久经沙场)",
            "market_hash_name": "Dual Berettas | Cobalt Quartz (Field-Tested)",
            "market_actions": [
                {
                    "link": "steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20M%listingid%A%assetid%D343540768138723478",
                    "name": "在游戏中检视…"
                }
            ],
            "commodity": 0,
            "market_tradable_restriction": 7,
            "marketable": 1,
            "tags": [
                {
                    "category": "Type",
                    "internal_name": "CSGO_Type_Pistol",
                    "localized_category_name": "类型",
                    "localized_tag_name": "手枪"
                },
                {
                    "category": "Weapon",
                    "internal_name": "weapon_elite",
                    "localized_category_name": "武器",
                    "localized_tag_name": "双持贝瑞塔"
                },
                {
                    "category": "ItemSet",
                    "internal_name": "set_lake",
                    "localized_category_name": "收藏品",
                    "localized_tag_name": "湖畔激战收藏品"
                },
                {
                    "category": "Quality",
                    "internal_name": "normal",
                    "localized_category_name": "类别",
                    "localized_tag_name": "普通"
                },
                {
                    "category": "Rarity",
                    "internal_name": "Rarity_Mythical_Weapon",
                    "localized_category_name": "品质",
                    "localized_tag_name": "受限",
                    "color": "8847ff"
                },
                {
                    "category": "Exterior",
                    "internal_name": "WearCategory2",
                    "localized_category_name": "外观",
                    "localized_tag_name": "久经沙场"
                }
            ]
        }
        ],
    "total_inventory_count": 1,
    "success": 1,
    "rwgrsn": -2
}

其中的assets部分为道具的id标识数据,一个对象对应一个道具,每个道具的assetid是不同的 descriptions为一类道具通用数据,代表一类道具的公共属性,一个classid代表一类公共属性,所以根据上面的assets中道具的classid,可以在descriptions中找到这个道具的其他属性信息,如道具名称、图片、类型等等。
而对于交易机器人,必须知道要请求的玩家库存道具的appid、contextid、assetid 数据,才能通过玩家的报价链接对其报价,请求交易assetid对应道具。

字段说明

为了方便库存道具在网站显示、交易,以下为一些需要从玩家库存保存下来的信息

  • appid

    道具的游戏id,常用的三个游戏id,730 代表CSGO,570代表Dota2,578080代表PUBG

  • contextid

    道具的游戏库存id,对于CSGO,Dota2,PUBG,这个值都是2

  • classid

    道具分类id,代表一类基础属性相同的道具

  • instanceid

    道具实例id?,意义暂不明

  • assetid

    道具唯一id,而且在道具交易之后会变化,比如在玩家A库存中一个道具assetid是13680926359,当玩家将其交易给B之后,这个道具assetid可能就变成了13680926360

  • name

    道具名称,简称,比如 “双持贝瑞塔 | 钴蓝石英”

  • market_name

    道具市场通称,一般会在简称基础上加上属性修饰词,比如 "双持贝瑞塔 | 钴蓝石英 (久经沙场)"

  • market_hash_name

    道具的市场hash名称,steam官方也有一个交易市场,玩家可以将库存发布到官方市场上,而官方市场对道具进行分类的原则就是这个market_hash_name,所有market_hash_name一样的道具,在市场上都会被划分为同一类道具,按同等道具进行定价;这个的范围比classid的大,所以可能出现两个道具market_hash_name相同,但是他们的classid不同,原因可能有很多种,比如两个道具是不同的赛季限定出的,所以他们的classid就不一样了

  • icon_url

    从steam库存接口获取到的道具的图片url都是cdn图片后缀地址,格式形如"-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgposem2LFZfwOP3ZTxS6eOlnI-Zg8j-JrXWmm5u5Mx2gv2Ppd7zjATirxFkNWD2JIGde1Q4MlyCrAe8x-u705a6uJ7Aynph6SUq4GGdwUKYnSlmwg”,加上cdn前缀地址和分辨率后缀(非必须)即可得到完整的图片地址: //steamcommunity-a.akamaihd.net/economy/image/ + icon_url + /70fx50f

  • icon_url_large

    与icon_url同理,不过是大尺寸的图片,此属性有可能为空

  • descriptions

    道具的描述信息,html格式文本

Pingbacks已关闭。

Trackbacks

评论已关闭