Pytanie:
Czy Steam może stworzyć przegląd wszystkich moich osiągnięć?
Demento
2012-01-05 21:34:04 UTC
view on stackexchange narkive permalink

Gram w kilka gier na Steam i uwielbiam system osiągnięć. Byłoby wspaniale mieć przegląd wszystkich osiągnięć kiedykolwiek zdobytych w grach Steam. Czy Steam to obsługuje? Nie znalazłem takiego przeglądu.

Gdyby taka funkcja nie istniała, byłbym zadowolony z prostego sposobu automatycznego obliczania sumy wszystkich moich osiągnięć.

Edycja: natknąłem się dziś na interesującą stronę internetową o nazwie TrueAchievements. Niestety działa tylko dla XBox-Achievements. Czy ktoś wie o podobnej usłudze dla Steam? To od razu rozwiązałoby moje pytanie. Wdrożenie własnego rozwiązania w oparciu o linki zamieszczone w odpowiedziach nie zadziałało, ponieważ interfejsy API nie są wystarczające dla moich potrzeb.

http://gaming.stackexchange.com/a/244381/130418 To było dla mnie dobre rozwiązanie.
Trueachivements.com ma teraz siostrzaną stronę https://truesteamachievements.com/ dla gier Steam.
Siedem odpowiedzi:
Anto
2012-01-05 21:49:20 UTC
view on stackexchange narkive permalink

Nie sądzę, aby Steam zapewniał taki przegląd. Jednak Steam (i Steamworks) zapewniają narzędzia, które mogą łatwo dać możliwość ich zbudowania.

Sprawdź dokumentację i przykłady:

Niektóre platformy społecznościowe zapewniają prawie tego rodzaju funkcje (ale myślę, że nie do końca to, czego chcesz). Powinieneś rzucić okiem na Astats (szczególnie tę stronę) i Poziom Steam.

Steamlevel również mówi coś interesującego o Steam internetowy interfejs API i osiągnięcia ( w jego FAQ):

Czy możesz pokazać osiągnięcia?

Chciałbym do! Niestety internetowy interfejs API Steam dla osiągnięć nie jest publiczny dla wszystkich gier. Mógłbym wymienić osiągnięcia gier Valve, ale osiągnięcia nie są łatwo dostępne. Nadal pracuję nad znalezieniem innych sposobów ich odzyskania, ale nie wstrzymuj oddechu.

Dla przypomnienia, większość z tych linków pochodzi z dyskusji na forum Steam: Czy jest jakaś witryna, która pozwoli ci porównać kolekcje Steam?

+1: Dzięki za linki, przyjrzę się możliwościom tych interfejsów API. GetGlobalAchievementPercentagesForApp nie pomoże, ponieważ nie jest specyficzna dla gracza. Ale może w pozostałej części dokumentacji znajdę odpowiednie telefony
Masz rację. Jednak dodałem kilka informacji i odniesień do mojej odpowiedzi; mam nadzieję, że to pomoże.
APrough
2012-01-27 19:25:58 UTC
view on stackexchange narkive permalink

Jest też playfire.com. Śledzi wszystkie moje osiągnięcia X360 i jest możliwość śledzenia Steam, a także PSN i XFire. Nie mam konta Steam, ale podoba mi się to, co robią z XBoxem. Może warto wypróbować Steam.

OK, już jest jasne - właśnie tego szukałem. Niesamowita platforma, wielkie dzięki!
Żaden problem. Cieszyć się.
ordag
2012-01-05 22:57:30 UTC
view on stackexchange narkive permalink

Obecnie nie jest możliwe zbieranie danych o osiągnięciach użytkowników za pomocą „nowego” interfejsu API. Jest to jednak możliwe w przypadku „starego” interfejsu API XML.

Po prostu dodaje się parametr uri o nazwie xml z wartością 1 na normalny identyfikator URI społeczności. (Tak więc dla strony społeczności http://steamcommunity.com/profiles/XYZ staje się to http://steamcommunity.com/profiles/XYZ?xml=1)


To jest przykładowa implementacja C # (tylko do celów demonstracyjnych!) , która uwidacznia User.Load , która przyjmuje identyfikator społeczności jako parametr. (W powyższym przykładzie tym identyfikatorem byłby XYZ ).

  // System.dll // System.Xml.dll // System.Xml.Linq.dllusing System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Xml.Linq; użycie System.Xml.XPath; public class Achievement {public string Name {get; zestaw; } publiczny napis Opis {get; zestaw; } public Uri Icon {get; zestaw; }} klasa publiczna Gra {publiczny identyfikator int {get; zestaw; } public string Name {get; zestaw; } publiczne logo Uri {get; zestaw; }} public class OwnedGame: Game {public User User {get; zestaw; } public Stats Stats {get; zestaw; }} public class Stats {public OwnedGame Game {get; zestaw; } 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; zestaw; } public string Name {get; zestaw; } publiczny awatar Uri {get; zestaw; } public IEnumerable<OwnedGame> Games {get; zestaw; } public static User Load (long id) {XDocument profileDocument = XDocument.Load (string.Format (SteamCommunityProfileUriFormat, id));
XElement profileElement = profileDocument.Element ("profile"); Użytkownik = nowy Użytkownik () {Id = long.Parse (profileElement.Element ("steamID64"). Wartość), Nazwa = profileElement.Element ("steamID"). Wartość, Avatar = nowy Uri (profileElement.Element ("avatarIcon ") .Value, UriKind.Absolute),}; XDocument gamesDocument = XDocument.Load (string.Format (SteamCommunityProfileGamesUriFormat, id)); List<OwnedGame> games = new List<OwnedGame> (); foreach (XElement gameElement w gamesDocument.XPathSelectElements ("gamesList / games / game")) {OwnedGame game = new OwnedGame () {Id = int.Parse (gameElement.Element ("appID"). Value), Name = gameElement.Element ("nazwa"). Wartość, Logo = nowy Uri (gameElement.Element ("logo"). Wartość, UriKind.Absolute), Użytkownik = użytkownik}; 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 ("statystyki graczy / osiągnięcia / osiągnięcia") .Where (reachElement = > pleasure.Attribute ("zamknięte"). Wartość == "1"). Wybierz (bringElement = > new Achievement () {Name = pleasureElement.Element ("name"). Value,
Description = reachElement.Element ("description"). Value, Icon = new Uri (bringElement.Element ("iconClosed"). Value, UriKind.Absolute)})}; } catch (WebException) {kontynuuj; }} games.Add (gra); } user.Games = games.AsReadOnly (); powrót użytkownika; }}  

Przykładowe użycie:

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

Mam nadzieję, że nie będzie ich zbyt wiele literówki tam :-)


Uwaga:

  • Zgodnie z Warunkami internetowego interfejsu API Steam użytkowania „masz ograniczenie do stu tysięcy (100 000) wywołań interfejsu Steam Web API dziennie”.
  • Wszystkie HTTP odpowiedzi z steamcommunity.com mają nagłówek Cache-Control: no-cache .
  • API XML to „stary” i miał zostać całkowicie zastąpiony. To oznacza: Dane XML mogą być nieprawidłowe i nie są dostępne dla wszystkich zasobów. (Tak jest obecnie w przypadku Team Fortress 2 Stats)
  • Nie nie potrzebuję klucza API , jak to ma miejsce w przypadku „nowego” interfejsu API.
Próbowałem dodać argument xml = 1 do mojego adresu URI społeczności Steam, ale niestety nie zadziałał. Może musisz użyć identyfikatora int zamiast identyfikatora ciągu, aby to zadziałało?
@Anto Czy możesz wysłać mi to uri?
Tak; ale ponieważ mój profil jest prywatny, nie jestem pewien, czy będziesz w stanie go przetestować: http://steamcommunity.com/profiles/antomrb?xml=1
Mhmmm ... Nawet kiedy jestem zalogowany?
@Anto Przykład publiczny: http://steamcommunity.com/id/mikeb?xml=1
@Anton Jego steamcommunity.com/profiles/ dla identyfikatorów i steamcommunity.com/id/ dla niestandardowych adresów URL. Spójrz na http://steamcommunity.com/id/antomrb?xml=1
Możliwe jest zbieranie danych osiągnięć użytkowników za pomocą internetowego interfejsu API.Jednak nadal nie jest możliwe uzyskanie sygnatur czasowych odblokowania za pośrednictwem internetowego interfejsu API.trzeba to jeszcze zrobić z danymi społeczności.
Ta metoda już nie działa.
Demento
2012-01-26 20:23:51 UTC
view on stackexchange narkive permalink

Znalazłem witrynę SteamStats, która odpowiada moim potrzebom. Śledzi prawie wszystkie gry Steam i oblicza ogólny wynik wszystkich zdobytych osiągnięć. Wartość osiągnięcia zależy od ilości osiągnięć w grze i od ilu innych graczy posiadających grę je ukończyło.

Ten mechanizm jest świetny, ponieważ nadaje większą wartość osiągnięciom, które są trudniejsze do zdobycia. otrzymać. Właśnie wypróbowałem tę stronę pierwszego dnia i już mi się podoba. Niestety funkcje są bardzo ograniczone, ale moje podstawowe wymagania są spełnione. System wartości ma już oczywiste wady. Skyrim, gra, w którą można łatwo grać przez ponad 100 godzin bez zdobywania więcej niż połowy osiągnięć, jest warta mniej niż 100 punktów, jeśli zdobędziesz wszystkie osiągnięcia. Inne gry, takie jak QUBE, w których można łatwo zdobyć wszystkie osiągnięcia w ciągu 15 godzin (po ich naprawieniu), są warte mniej więcej tyle samo punktów.

Jeśli ktoś zna podobną usługę z większą liczbą funkcji, ja przyjmie ich odpowiedź. W przeciwnym razie zaakceptuję własne, ponieważ obecnie najlepiej pasuje do tego, czego szukam.

Link nie działa.
Link nadal nie działa.
Rahul Kadukar
2013-09-15 02:20:15 UTC
view on stackexchange narkive permalink

Jeśli jesteś powyżej 10 poziomu na Steamie, otrzymasz coś, co nazywa się pokazem osiągnięć. Pokazuje liczbę zdobytych osiągnięć, procent ukończonych wszystkich rozpoczętych gier oraz liczbę gier, w których udało Ci się zdobyć wszystkie osiągnięcia.

Coś takiego http: // steamcommunity. com / id / rahulkadukar

+1 To naprawdę fajne, ta funkcja jest dla mnie nowością. Czy wiesz, kiedy to zostało wprowadzone do pary?
Zostało to niedawno wprowadzone, kiedy zaczęli używać kart kolekcjonerskich. Więc po każdych 10 poziomach masz teraz prezentację. Obecnie istnieje 13 gablot, które można wybrać. Ponieważ mam teraz 33 poziom, 3, które pokazałem, to prezentacja osiągnięć, ulubiona gra i kolekcjoner gier
user101016
2015-11-21 05:12:27 UTC
view on stackexchange narkive permalink

Możesz korzystać z witryn osób trzecich, takich jak MetaGamerScore.com.Tego typu witryny okresowo skanują Twoje osiągnięcia, dając dobry przegląd osiągnięć, które odblokowałeś (lub jeszcze nie odblokujesz).

Jeśli chodzi o TrueAchievements, niedawno wydali wersję poświęconą osiągnięciom Steam ( truesteamachievements.com).

Xeinok
2017-11-28 02:03:13 UTC
view on stackexchange narkive permalink

Z oficjalnej społeczności 100Pals Steam Achievement Hunting, lista wszystkich aktywnych narzędzi do śledzenia osiągnięć i ich twórców:

Wiele platform

  https://completionist.me/ luchaos
https://exophase.com/ x3sphere
https://metagamerscore.com/ primal_r
 

Steam

  https://achievementstats.com/ ChrissyX, munky
http://astats.astats.nl/ Mytharox
https://steamhunters.com/ Rudey
https://steamladder.com/ Terry007, Florens
http://steam-tools.net/infograph Misteriosm
https://truesteamachievements.com/ Rich Stone
 

Osobiście używam: cme (piękny interfejs użytkownika, szczegółowe statystyki), AStats (wartości punktowe / przewodniki / tabele wyników), MGS (punkty międzyplatformowe / rankingi) i SH (nowy tracker / dobry interfejs użytkownika / rankingi).Możesz porozmawiać bezpośrednio ze wszystkimi powyższymi programistami pod adresem: https://www.discord.me/100Pals



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...