Документация Steamworks
GetAssetClassInfo/v0001
Возвращает информацию, необходимую для показа класса ресурса пользователю. Этот метод вызывается как минимум однажды для каждого ресурса, который появляется в инвентаре пользователя. Данные кэшируются, так что его можно вызывать реже, чем один раз на каждый просмотр ресурса. Если вам по какой-то причине нужно аннулировать кэш, вы можете поменять версию класса ресурса на вкладке «Экономика» страницы настроек приложения.

Обычно идентификаторы класса полностью заданы игрой, в которой существует ресурс. Валюта в то же время является исключением. Сервер экономики Steam может вызвать GetAssetClassInfo с единственным идентификатором, currencyid, со значением равным номеру валюты, которая ему нужна. В этом случае сервер ресурсов должен вернуть информацию о валюте, а не о ресурсе.

Вызывается: интерфейсом инвентаря

Метод HTTP: GET

Параметры:

НазваниеТипОбязательно?Описание
keystringЭто ключ сервера ресурсов, который вы предоставили в настройках раздела экономики своего приложения в Steam на партнёрском сайте.
appiduint3232-битный номер приложения, к которому относятся ресурсы.
class_countuint32Число указанных идентификаторов класса.
class_name#stringНазвание идентификатора. Для каждого числа между 0 и class_count – 1 будет возвращён свой параметр (к примеру, class_name0, class_name1, class_name2)
class_value#stringЗначение идентификатора. Для каждого числа между 0 и class_count – 1 будет возвращён свой параметр. (к примеру, class_value0, class_value1, class_value2)
languagestringЯзыковой код ISO639-1 плюс код страны ISO 3166-1 alpha-2 для языка, на котором возвращать строки. К примеру: en_US, de_DE, zh_CN, ko_KR. По умолчанию: en_US

Возвращаемые значения

Результат этого метода кодируется в .json.

Ответ:
  • result
    • success — true, если метод успешен. Если сервер ресурсов возвращает false, будет также возвращено поле error с объяснением.
    • error — объяснение сбоя. Это сообщение будет записано в журнал ошибок, который увидеть во вкладке «Экономика» раздела «Сообщество» настроек приложения.
    • asset — объект, содержащий информацию для отображения для указанных идентификаторов класса ресурса.

Информация для отображения:

  • background_color — шестнадцатеричный RGB-код цвета в виде строки.
  • icon_url — иконка для данного ресурса. Изображение должно быть в формате jpeg, gif или png.
    Предпочтительно gif или png, поскольку они поддерживают прозрачность. С помощью этого поля можно отправить иконку одного размера, а Steam переведёт их в подходящий для интерфейса размер. Размер иконки здесь — 200 на 200 пикселей. Steam предоставит сеть доставки контента (CDN) для отправки пользователям этих изображений, так что нагрузка на эти ссылки будет сравнительно невелика.
  • icon_url_large (необязательно) — большая иконка для описаний. Требования к формату файлов те же, что и у icon_url.
    Размер иконки здесь — 330 на 192 пикселя. Если параметр icon_url_large не отправлен, вместо него используется icon_url.
    Steam предоставит сеть доставки контента (CDN) для отправки пользователям этих изображений, так что нагрузка на эти ссылки будет сравнительно невелика.
  • descriptions — массив описаний, который будет показан для ресурса. Они будут показаны среди подсказок и подробных описаний предметов
    в том порядке, в котором отправлены.
    • type (необязательно) — поле type задаёт, как будет отображаться поле value.
      Это могут быть любые из следующих значений:
      • text — поле value будет интерпретироваться как необработанный переведённый текст на указанном языке. Некоторые символы (знаки «больше», «меньше» и проч.) будут переведены в html-код, так что они не будут интерпретироваться как тэги. Все символы перехода на новую строку будут переведены в <br>.
        Этот тип следует использовать для данных, введённых пользователем. Если тип не указан, по умолчанию он приравнивается к text.
      • html — поле value будет выведено на страницу как html с нетронутыми тегами.
    • image — ссылка на изображение для этого описания. Steam предоставит сеть доставки контента (CDN) для этого изображения, так что нагрузка на эти ссылки будет сравнительно невелика.
    • value — переведённое текстовое описание.
    • color (не обязательно) — шестнадцатеричный RGB-цвет, используемый для отображения текста параметра value. Используйте тот же цвет, на котором эта информация появляется во внутриигровом интерфейсе. Это поле применимо только к значениям типа text.
    • label (необязательно) — если данное поле заполнено, эта пометка будет показана перед описанием.
  • tags (не обязательно) — массив меток, относящихся к ресурсу. Они показываются пользователям в качестве фильтров в разных местах интерфейса, в том числе на Торговой площадке и в пользовательском инвентаре.
    • internal_name — внутреннее название для метки. Пользователям оно не показывается. Не используйте пробелы, символы, не используемые в ASCII, или непечатаемые символы в internal_name.
    • name — локализованное название метки. Показывается пользователям.
    • category — категория, к которой относится эта метка. Используется только для внутренней группировки и не показывается пользователю. Не используйте пробелы, символы, не используемые в ASCII, или непечатаемые символы в category.
    • category_name — локализованное название категории. Показывается пользователям.
    • color (не обязательно) — шестнадцатеричный RGB-цвет, используемый для отображения названия метки.
  • tradable (необязательно) — если true, предмет появится в интерфейсе обмена. (По умолчанию: false)
  • marketable (необязательно) — если true, предмет можно продать на торговой площадке Steam. (По умолчанию: false).

    Обратите внимание: лоты на Торговой площадке нельзя протестировать. Если выставить предмет на Торговую площадку, он будет немедленно виден всем пользователям, даже если экономика игры отмечена как частная.
  • market_name (требуется, если marketable = true) — если предмет выставлен на Торговой площадке, это название, которое будет использовано для группировки предметов и будет отображаться на Торговой площадке. Этот параметр должен быть локализован, где возможно.
  • market_hash_name (требуется, если marketable = true) — этот параметр должен быть английским значением market_name. Он используется для соотнесения различных версий и показа истории цен и другой информации.
  • market_fee (необязательно) — если marketable = true, процент от объема сделки (по умолчанию 10%), который будет взят игрой в качестве комиссии. Эти комиссионные оплачиваются покупателем предмета во время транзакции и передаются издателю как часть ежемесячного платежа. Выражается как число между 0 и 0.95 (впрочем, рекомендуется выставлять разумную комиссию). (По умолчанию: 0.10)
  • commodity (необязательно) — обозначает, что каждый предмет с тем же market_hash_name, что и данный предмет, абсолютно такой же, как и данный предмет. С пользовательской точки зрения разницы быть не должно. Это меняет интерфейс Торговой площадки для такого рода предметов и позволяет пользователям размещать заказы на покупку. У пользователя не будет возможности выбрать, у кого купить, или какой именно из лотов, поэтому крайне важно, чтобы предметы с одним и тем же market_hash_name были идентичными, если commodity = true. (По умолчанию: false)
  • market_tradable_restriction (необязательно) — число дней после покупки, в течение которого предмет невозможно обменять. Вы можете ввести ограничение на обмен купленных предметов, чтобы снизить возможности пользователей совершить мошенничество с кредитными картами. В играх Valve используется значение 7. (По умолчанию: 0)
    Обратите внимание: это значение не является принудительным. Steam не устанавливает ограничение за игру: данное значение используется только для того, чтобы информировать пользователей о том, что ограничение существует. После того, как предмет приобретён, сервер ресурсов должен самостоятельно наложить ограничение на обмен на новый предмет. Сервер ресурсов может сделать это в тот момент, когда вызывается TradeSetOwned/v0001, при этом значение параметра is_market равно 1, а значение audit_action101.
  • market_marketable_restriction (необязательно) — работает как и market_tradable_restriction, но показывает число дней, в течение которых предмет нельзя продать на Торговой площадке. В играх Valve используется значение 7. (По умолчанию: 0)
    Обратите внимание: это значение не является принудительным. Steam не устанавливает ограничение за игру: данное значение используется только для того, чтобы информировать пользователей о том, что ограничение существует. После того, как предмет приобретён, сервер ресурсов должен самостоятельно наложить ограничение на обмен на новый предмет. Сервер ресурсов может сделать это в тот момент, когда вызывается TradeSetOwned/v0001, при этом значение параметра is_market равно 1, а значение audit_action101.
  • actions — массив действий (ссылок), как правило необходимых для того, чтобы показать больше информации о ресурсе. Они отображаются в виде кнопок под описанием на странице инвентаря. Эти ссылки откроются в браузере пользователя, используемом по умолчанию.
    • link — URL, по которой переходим при нажатии на кнопку. Токены %assetid%, %contextid% и %appid% будут заменены соответствующими номерами.
    • name — пометка, которая будет показана на кнопке.
  • owner_descriptions — массив описаний, которые показываются только владельцу ресурса. Содержимое массива совпадает с descriptions. Единственное отличие между двумя списками состоит в том, кто может видеть эти описания.
  • owner_actions — массив действий, которые показываются только владельцу ресурса. Формат совпадает с форматом actions. Они представляют собой специальные действия, которые доступны только владельцу ресурса, к примеру, активация или изменение ресурса.
  • fraudwarnings— массив предупреждений о возможном мошенничестве, который добавляется, если предмет добавлен в обмен.
    Они показываются красным цветом.
  • name — отображается в первой строке как название предмета.
  • name_color — шестнадцатеричный RGB-цвет, используемый для отображения названия. Должно совпадать с цветовой кодировкой редкости или качества предметов в игре.
  • type — отображается во второй строке.
  • contained_item (необязательно) — этот параметр должен содержать полный блок ресурсов для предмета, содержащегося внутри ресурса. Игры на движке Source используют этот параметр для обёрнутых подарков, но это может быть неприменимо к вашей игре.
  • cache_expiration (необязательно) — время в формате RFC 3339 UTC, когда необходимо аннулировать кэш ответа, хранящийся в Steam. Используйте это поле только в том случае, если какая-либо часть ответа GetAssetClassInfo позднее изменится, хотя набор свойств классов ресурсов и не изменился. Это может пригодиться, если предмет станет доступным для обмена позже. Мы рекомендуем округлять время в свойствах классов ресурсов (и, как следствие, в этом поле тоже) до дней или часов, чтобы упростить для Steam кэширование описаний классов ресурсов.
  • item_expiration (необязательно) — время в формате RFC 3339 UTC, когда предмет больше невозможно использовать. После этого все активные лоты подвергнутся автоматической отмене, и их невозможно будет купить.

    Пример вывода

    { "result": { "asset": { "descriptions": [ { "name": "attribute", "value": "+50% fire damage resistance on wearer", "color": "99ccff" }, { "name": "attribute", "value": "+40% explosive damage resistance on wearer", "color": "99ccff" }, { "name": "attribute", "value": "Alt-Fire: Gain increased attack power by\ncharging toward your enemies." } ] , "fraudwarnings": [ "This item has been renamed.\nOriginal name: \"Chargin' Targe\"" ] , "tradable": true, "background_color": "3C352E", "icon_url": "http://media.steampowered.com/apps/440/icons/c_targe_large.b7d8c75ecfc9b04cc49d2c61ddc77996d7ec2f3a.png", "name": "''Awesome Targe''", "type": "Level 10 Shield", "name_color": "7D6D00", "actions": [ { "name": "Item Wiki Page...", "link": "http://wiki.teamfortress.com/scripts/itemredirect.php?id=131&lang=en_US" } ] }, "success": true } }

    economy_asset_tooltip.png

    economy_asset_icon.png