微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Steam Achievements API – 如何获得成就解锁日期?

这可以在Steam Acheivements API中获得成就解锁日期吗?我已经阅读了一堆文档,但没有提到这一点.

解决方法

答案是肯定的,但是你必须使用旧的 XML API,而不是更新的Web API,它必须是一个“更新”的成就.

旧样式URL如下所示

http://steamcommunity.com/id/<profilename>/stats/<appid>/achievements/?xml=1

要么

http://steamcommunity.com/profiles/<profileid>/stats/<appid>/achievements/?xml=1

在这一点上有几个笔记:

>< profilename>是用户选择的唯一URL名称. < profileid>是Valve分配的唯一64位数
>< appid>是数字应用程序ID.我假设你知道如何找到这个,对吗?

如果从该链接提取XML,最终会得到如下所示的结构:

playerstats
  game
  player
  stats
  achievements
    achievement
      iconClosed
      iconopened
      name
      apiname
      description
      unlockTimestamp

重要提示:unlockTimestamp并不总是可用.如果没有深入研究它,似乎这是在较旧的游戏(即TF2)的情况下稍后添加的.因此,您有一些返回与此类似的数据的原始成就:

<achievement closed="1">
  <iconClosed>http://media.steampowered.com/steamcommunity/public/images/apps/440/tf_play_game_everyclass.jpg</iconClosed>
  <iconopen>http://media.steampowered.com/steamcommunity/public/images/apps/440/tf_play_game_everyclass_bw.jpg</iconopen>
  <name>Head of the Class</name>
  <apiname>tf_play_game_everyclass</apiname>
  <description>Play a complete round with every class.</description>
</achievement>

与以下类似的新成就:

<achievement closed="1">
  <iconClosed>http://media.steampowered.com/steamcommunity/public/images/apps/440/bb590c7ca44dfc7eb6a31abb39fae07c47502ac7.jpg</iconClosed>
  <iconopen>http://media.steampowered.com/steamcommunity/public/images/apps/440/4f244b30a76e9de5287a82cc3829c7930baa38c7.jpg</iconopen>
  <name>Got A Light?</name>
  <apiname>tf_pyro_burn_spy_taunt</apiname>
  <description>Ignite an enemy Spy while he's flicking a cigarette.</description>
  <unlockTimestamp>1301887931</unlockTimestamp>
</achievement>

如果玩家尚未获得成就,则成就节点上的关闭属性将等于0,并且返回的数据看起来与旧成就类似(没有unlockTimestamp)

<achievement closed="0">
  <iconClosed>http://media.steampowered.com/steamcommunity/public/images/apps/440/957daad8f6b9f237620e0326f38cbf941c60a9d1.jpg</iconClosed>
  <iconopen>http://media.steampowered.com/steamcommunity/public/images/apps/440/34b787ce4e47ef0e206ecd52626b053da13e18c4.jpg</iconopen>
  <name>Krazy Ivan</name>
  <apiname>tf_heavy_kill_underwater</apiname>
  <description>Kill 50 enemies while both you and your victim are underwater.</description>
</achievement>

在上述XML结构中,成就节点将针对所选游戏可用的每个成就重复.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐