babelshift / SteamWebAPI2

🎮 C# / .NET library that makes it easy to use the Steam Web API. It conveniently wraps around all of the JSON data and ugly API details with clean methods, structures and classes.
MIT License
263 stars 43 forks source link

[Enhancement] Add 'item_logname' tag to TF2.SchemaItem. #44

Closed Tvde1 closed 4 years ago

Tvde1 commented 7 years ago

When getting the TF2 SchemaModel, there's an url given with data that looks like:

"730" //Defindex
        {
            "name"  "The Beggar's Bazooka"
            "first_sale_date"   "2012/06/27"
            "item_class"    "tf_weapon_rocketlauncher"
            "propername"    "1"
            "craft_class"   "weapon"
            "craft_material_type"   "weapon"
            "capabilities"
            {
                "nameable"      "1"
                "can_craft_count"   "1"
            }
            "tags"
            {
                //Data
            }
            "show_in_armory"    "1"
            "item_type_name"    "#TF_Weapon_RocketLauncher"
            "item_name"         "#TF_DS_DumpsterDevice"
            "item_description"  "#TF_DS_DumpsterDevice_Desc"
            "item_logname"  "dumpster_device"
            "item_iconname" "dumpster_device"
            "item_slot" "primary"
            "item_quality"  "unique"
            "image_inventory"   "backpack/weapons/c_models/c_dumpster_device/c_dumpster_device"
            //More data hare
        }

There's a 'item_logname' field that I would really like to use, but I see no way to retrieve it via this libary. Could some of this data be included in the SchemaItemModel?

babelshift commented 7 years ago

I will look at this tonight/tomorrow. Should be an easy addition.

On May 2, 2017 6:52 AM, "Tim van den Essen" notifications@github.com wrote:

When getting the TF2 SchemaModel, there's an url given with data that looks like:

"730" //Defindex { "name" "The Beggar's Bazooka" "first_sale_date" "2012/06/27" "item_class" "tf_weapon_rocketlauncher" "propername" "1" "craft_class" "weapon" "craft_material_type" "weapon" "capabilities" { "nameable" "1" "can_craft_count" "1" } "tags" { //Data } "show_in_armory" "1" "item_type_name" "#TF_Weapon_RocketLauncher" "item_name" "#TF_DS_DumpsterDevice" "item_description" "#TF_DS_DumpsterDevice_Desc" "item_logname" "dumpster_device" "item_iconname" "dumpster_device" "item_slot" "primary" "item_quality" "unique" "image_inventory" "backpack/weapons/c_models/c_dumpster_device/c_dumpster_device" //More data hare }

There's a 'item_logname' field that I would really like to use, but I see no way to retrieve it via this libary. Could some of this data be included in the SchemaItemModel?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/babelshift/SteamWebAPI2/issues/44, or mute the thread https://github.com/notifications/unsubscribe-auth/ACmOX6U_m1kmAgL3_MjsiiIDt7tdDwevks5r1wrggaJpZM4NN_VX .

babelshift commented 7 years ago

@Tvde1 Added this in the latest NuGet release. Please test and let me know.

Tvde1 commented 7 years ago

It returns null for every weapon in the schema. :\

babelshift commented 7 years ago

Ah OK. I'll do some more tests today. Sorry about that.

babelshift commented 7 years ago

Where did you get the example in your original comment above? When I call the IEconItems_440/GetSchema endpoint, I see this Beggar's Bazooka with no item_logname property. Seems like this property isn't available from the Web API but exists in the TF2 game files?

{
    "name": "The Beggar's Bazooka",
    "defindex": 730,
    "item_class": "tf_weapon_rocketlauncher",
    "item_type_name": "Rocket Launcher",
    "item_name": "Beggar's Bazooka",
    "item_description": "",
    "proper_name": true,
    "item_slot": "primary",
    "model_player": "models/weapons/c_models/c_dumpster_device/c_dumpster_device.mdl",
    "item_quality": 6,
    "image_inventory": "backpack/weapons/c_models/c_dumpster_device/c_dumpster_device",
    "min_ilevel": 1,
    "max_ilevel": 100,
    "image_url": "http://media.steampowered.com/apps/440/icons/c_dumpster_device.317580090616deba8e5976dfe3c0c5013a095485.png",
    "image_url_large": "http://media.steampowered.com/apps/440/icons/c_dumpster_device_large.36652d6b073bf227551dfa753d64ae7262ddf5eb.png",
    "item_set": "soldier_dumpster_diver",
    "craft_class": "weapon",
    "craft_material_type": "weapon",
    "capabilities": {
        "nameable": true,
        "can_gift_wrap": true,
        "can_craft_count": true,
        "can_craft_mark": true,
        "can_be_restored": true,
        "strange_parts": true,
        "can_card_upgrade": true,
        "can_strangify": true,
        "can_killstreakify": true,
        "can_consume": true
    },
    "used_by_classes": [
        "Soldier"
    ]
    ,
    "attributes": [
        {
            "name": "fire rate bonus HIDDEN",
            "class": "mult_postfiredelay",
            "value": 0.300000011920928955
        },
        {
            "name": "auto fires full clip",
            "class": "auto_fires_full_clip",
            "value": 1
        },
        {
            "name": "can overload",
            "class": "can_overload",
            "value": 1
        },
        {
            "name": "reload time increased hidden",
            "class": "mult_reload_time_hidden",
            "value": 1.29999995231628418
        },
        {
            "name": "clip size penalty HIDDEN",
            "class": "mult_clipsize",
            "value": 0.75
        },
        {
            "name": "projectile spread angle penalty",
            "class": "projectile_spread_angle",
            "value": 3
        },
        {
            "name": "no primary ammo from dispensers while active",
            "class": "no_primary_ammo_from_dispensers",
            "value": 1
        },
        {
            "name": "Blast radius decreased",
            "class": "mult_explosion_radius",
            "value": 0.800000011920928955
        }
    ]
},
Tvde1 commented 7 years ago

When I call

var data = (await _econItems.GetSchemaForTF2Async()).Data

The object has a ItemsGameUrl property that contains "http://media.steampowered.com/apps/440/scripts/items/items_game.ab930a8cc175a8df91cd3d350245f237f50ac4b1.txt".

In there I can find stuff like:

"730"
{
    "name"  "The Beggar's Bazooka"
    "first_sale_date"   "2012/06/27"
    "item_class"    "tf_weapon_rocketlauncher"
    "propername"    "1"
    "craft_class"   "weapon"
    "craft_material_type"   "weapon"
    "capabilities"
    {
        "nameable"      "1"
        "can_craft_count"   "1"
    }
    "tags"
    {
        "can_deal_damage"       "1"
        "can_deal_gib_damage"   "1"
        "can_be_equipped_by_soldier_or_demo"    "1"
        "can_deal_posthumous_damage"    "1"
        "can_deal_critical_damage"  "1"
        "can_deal_long_distance_damage" "1"
    }
    "show_in_armory"    "1"
    "item_type_name"    "#TF_Weapon_RocketLauncher"
    "item_name"         "#TF_DS_DumpsterDevice"
    "item_description"  "#TF_DS_DumpsterDevice_Desc"
    "item_logname"  "dumpster_device"
    "item_iconname" "dumpster_device"
    "item_slot" "primary"
    "item_quality"  "unique"
    "image_inventory"   "backpack/weapons/c_models/c_dumpster_device/c_dumpster_device"
    "image_inventory_size_w"        "128"
    "image_inventory_size_h"        "82"
    "model_player"  "models/weapons/c_models/c_dumpster_device/c_dumpster_device.mdl"
    "attach_to_hands" "1"
    "used_by_classes"
    {
        "soldier"   "1"
    }
    "static_attrs"
    {
        "min_viewmodel_offset"      "10 -3 -10"             
    }
    "attributes"
    {
        "fire rate bonus HIDDEN"
        {
            "attribute_class"   "mult_postfiredelay"
            "value" "0.3"
        }
        "auto fires full clip"
        {
            "attribute_class"   "auto_fires_full_clip"
            "value" "1"
        }
        "can overload"
        {
            "attribute_class"   "can_overload"
            "value" "1"
        }
        "reload time increased hidden"
        {
            "attribute_class"   "mult_reload_time_hidden"
            "value" "1.3"
        }
        "clip size penalty HIDDEN"
        {
            "attribute_class"   "mult_clipsize"
            "value" "0.75"
        }
        "projectile spread angle penalty"
        {
            "attribute_class"   "projectile_spread_angle"
            "value" "3"
        }
        "no primary ammo from dispensers while active"
        {
            "attribute_class"   "no_primary_ammo_from_dispensers"   
            "value" "1"
        }
        "blast radius decreased"
        {
            "attribute_class"   "mult_explosion_radius"
            "value" "0.8"
        }
    }
    "visuals"
    {
        "sound_single_shot" "Weapon_Does_Dumpster.Single"
        "sound_burst"       "Weapon_Does_Dumpster.SingleCrit"
        "sound_reload"      "Weapon_DumpsterRocket.Reload"
    }
    "mouse_pressed_sound"   "ui/item_heavy_gun_pickup.wav"
    "drop_sound"            "ui/item_heavy_gun_drop.wav"
}

Which contains the item_logname.

babelshift commented 4 years ago

GetSchema was deprecated last year in favor of GetSchemaItems and GetSchemaOverview. Neither of these endpoints contains the item_logname property. It looks like the detailed game files may contain this property, but that is out of scope of this SDK.