Kann ich einen Überblick über alle meine Leistungen machen?

Ich spiele mehrere Spiele auf Steam und ich liebe das Leistungssystem. Es wäre toll, einen Überblick über alle Errungenschaften zu bekommen, die jemals in Steam Games gewonnen wurden. Unterstützt Steam das? Ich habe keinen solchen Überblick gefunden.

Wenn solch ein Merkmal nicht existiert, wäre ich schon glücklich mit einer einfachen Möglichkeit, die Summe aller meiner Errungenschaften automatisch zu berechnen.

Edit: Ich stolperte auf eine interessante Website namens TrueAchievements heute. Leider funktioniert es nur für XBox-Erfolge. Kennt jemand einen ähnlichen Service für Steam? Das würde meine Frage sofort lösen. Die Implementierung meiner eigenen Lösung auf der Grundlage der Links in den Antworten gepostet wurde nicht funktionieren, weil die APIs sind nicht ausreichend für meine Bedürfnisse.

Es gibt auch playfire.com . Es verfolgt alle meine X360-Errungenschaften, und es gibt die Möglichkeit, Steam, sowie PSN und XFire zu verfolgen. Ich habe keinen Dampfkonto, aber ich mag was sie mit der XBox machen. Vielleicht lohnt es sich für Dampf zu versuchen.

Ich glaube nicht, dass Steam einen solchen Überblick bietet. Jedoch bieten Steam (und Steamworks) Werkzeuge, die leicht die Möglichkeit geben könnten, sie zu bauen.

Schauen Sie sich die Dokumentation und Beispiele an:

Einige Community-Plattformen bieten fast diese Art von Feature (aber nicht genau das, was du willst, denke ich). Sie sollten einen Blick auf Astats (vor allem diese Seite ) und Steamlevel .

Steamlevel sagt auch etwas Interessantes über Steam Web API und Erfolge ( in seiner FAQ ):

Können Sie Erfolge zeigen?

Ich würde es gerne tun! Leider ist Steam's Web API für Erfolge nicht öffentlich für alle Spiele. Ich könnte Erfolge von Valve-Spielen auflisten, aber Erfolge sind nicht leicht verfügbar. Ich arbeite immer noch daran, andere Wege zu finden, um sie zurückzuholen, aber halte deinen Atem nicht.

Für die Aufzeichnungen, die meisten dieser Links kam aus diesem Steam's Forum Diskussion: Gibt es eine Website, die Ihnen erlaubt, Steam Sammlungen zu vergleichen?

Ich fand die Website SteamStats, die meine Bedürfnisse anspricht. Es verfolgt fast alle Dampfspiele und berechnet eine Gesamtpunktzahl aller Leistungen, die Sie verdient haben. Der Wert einer Leistung hängt von der Höhe der Errungenschaften im Spiel ab und wie viele andere Spieler, die das Spiel besitzen, das abgeschlossen haben.

Dieser Mechanismus ist großartig, weil er einen höheren Wert auf jene Leistungen setzt, die schwerer zu bekommen sind. Ich habe gerade die Seite für den ersten Tag probiert und ich mag es schon. Leider sind die Features sehr begrenzt, aber meine Grundanforderungen sind erfüllt. Das Wertesystem hat schon einige offensichtliche Mängel. Skyrim, ein Spiel, das man über 100 Stunden leicht spielen kann, ohne mehr als die Hälfte der Errungenschaften zu bekommen, ist nur weniger als 100 Punkte wert, wenn man alle Errungenschaften bekommt. Andere Spiele wie QUBE, wo man alle Errungenschaften innerhalb von 15 Stunden leicht bekommen kann (sobald sie fixiert sind) sind die gleichen Punkte wert.

Wenn jemand einen ähnlichen Service mit mehr Features kennt, werde ich ihre Antwort akzeptieren. Ansonsten werde ich meine eigenen akzeptieren, weil es derzeit passt, was ich am besten suche.

Es ist derzeit nicht möglich, Benutzer-Leistungsdaten mit der "neuen" API zu sammeln. Es ist mit der "alten" XML-API möglich .

Es ist im Grunde nur das Hinzufügen eines uri-Parameters namens xml mit Wert 1 zu einer normalen Community uri. (So ​​für eine Community-Seite von http://steamcommunity.com/profiles/XYZ dies http://steamcommunity.com/profiles/XYZ?xml=1 )


Dies ist eine Beispiel- C # User.Load (nur für Demonstrationszwecke!) , Die eine User.Load Methode User.Load , die die Community-ID als Parameter übernimmt. (Diese ID wäre XYZ im obigen Beispiel.)

 // System.dll // System.Xml.dll // System.Xml.Linq.dll using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Xml.Linq; using System.Xml.XPath; public class Achievement { public string Name { get; set; } public string Description { get; set; } public Uri Icon { get; set; } } public class Game { public int Id { get; set; } public string Name { get; set; } public Uri Logo { get; set; } } public class OwnedGame : Game { public User User { get; set; } public Stats Stats { get; set; } } public class Stats { public OwnedGame Game { get; set; } public IEnumerable<Achievement> Achievements { get; set;} } public class User { private const string SteamCommunityProfileUriFormat = "http://steamcommunity.com/profiles/{0}?xml=1"; private const string SteamCommunityProfileGamesUriFormat = "http://steamcommunity.com/profiles/{0}/games?xml=1"; public long Id { get; set; } public string Name { get; set; } public Uri Avatar { get; set; } public IEnumerable<OwnedGame> Games { get; set; } public static User Load(long id) { XDocument profileDocument = XDocument.Load(string.Format(SteamCommunityProfileUriFormat, id)); XElement profileElement = profileDocument.Element("profile"); User user = new User() { Id = long.Parse(profileElement.Element("steamID64").Value), Name = profileElement.Element("steamID").Value, Avatar = new Uri(profileElement.Element("avatarIcon").Value, UriKind.Absolute), }; XDocument gamesDocument = XDocument.Load(string.Format(SteamCommunityProfileGamesUriFormat, id)); List<OwnedGame> games = new List<OwnedGame>(); foreach (XElement gameElement in gamesDocument.XPathSelectElements("gamesList/games/game")) { OwnedGame game = new OwnedGame() { Id = int.Parse(gameElement.Element("appID").Value), Name = gameElement.Element("name").Value, Logo = new Uri(gameElement.Element("logo").Value, UriKind.Absolute), User = user }; XElement statsLinkElement = gameElement.Element("statsLink"); if (statsLinkElement != null) { try { XDocument statsDocument = XDocument.Load(statsLinkElement.Value + "?xml=1"); game.Stats = new Stats() { Game = game, Achievements = statsDocument .XPathSelectElements("playerstats/achievements/achievement") .Where(achievementElement => achievementElement.Attribute("closed").Value == "1") .Select(achievementElement => new Achievement() { Name = achievementElement.Element("name").Value, Description = achievementElement.Element("description").Value, Icon = new Uri(achievementElement.Element("iconClosed").Value, UriKind.Absolute) }) }; } catch (WebException) { continue; } } games.Add(game); } user.Games = games.AsReadOnly(); return user; } } 

Beispiel:

 long id = ... User user = User.Load(id); int totalAchievementCount = user.Games.Where(game => game.Stats != null).SelectMany(game => game.Stats.Achievements).Count(); 

Lass mich hoffen, dass es dort nicht zu viel Tippfehler gibt 🙂


Hinweis:

  • Wie in den Steam Web API Nutzungsbedingungen beschrieben , sind Sie auf hunderttausend (100.000) Anrufe an die Steam Web API pro Tag beschränkt. "
  • Alle HTTP- Antworten von steamcommunity.com haben einen Cache-Control: no-cache Header.
  • Die XML-API ist "alt" und sollte vollständig ersetzt werden. Das bedeutet: XML-Daten können ungültig sein und sind nicht für alle Ressourcen verfügbar. (Das ist derzeit der Fall für Team Fortress 2 Stats)
  • Du brauchst keinen API-Key, wie es bei der "neuen" API der Fall ist.

Wenn du über Stufe 10 auf Steam bist, bekommst du etwas, das als Achievement Showcase bekannt ist. Dies zeigt die Anzahl der Errungenschaften, die Sie abgeschlossen haben, der Prozentsatz für alle Spiele, die Sie begonnen haben, und die Anzahl der Spiele, bei denen Sie alle Erfolge erhalten haben.

Etwas wie dieses http://steamcommunity.com/id/rahulkadukar

Sie können eine Website von Drittanbietern wie MetaGamerScore.com verwenden . Diese Art von Websites regelmäßig scannen Sie Ihre Leistungen, so dass Sie einen guten Überblick über die Leistungen, die Sie freigeschaltet haben (oder noch zu entsperren).

In Bezug auf TrueAchievements, haben sie vor kurzem eine Version gewidmet Steam Leistungen ( truesteamachievements.com ) veröffentlicht.