Steamworks-dokumentaatio
Steamin pistetaulukot

Yleiskatsaus

Steam tukee pysyviä pistetaulukoita, joiden merkinnät haetaan automaattisesti. Pistetaulukoilla voi näyttää maailmanlaajuiset tai ystävien keräämät pisteet pelin ja yhteisön verkkosivulla. Jokaiselle Steamworks-pelille voi luoda jopa 10 000 pistetaulukkoa, joista jokaisen voi noutaa välittömästi pelaajan tuloksen lisäämisen jälkeen.

Pelaajalla voi olla yksi merkintä kussakin pistetaulukossa. Pistetaulukon pelaajamääriä ei ole rajoitettu. Jokainen merkintä sisältää pistetaulukon pisteet (int32-merkintä) ja vaihtoehtoisesti jopa 64 int32-merkintää aiheeseen liittyville tiedoille. Aiheeseen liittyviä tietoja voi käyttää pelikohtaisten tietojen tallentamiseen siitä pelisessiosta, josta käyttäjän pistetaulukkomerkintä on peräisin. Steam ei lajittele tai jäsennä näitä tietoja, ja ne korvataan, kun käyttäjälle luodaan uusi pistetaulukkomerkintä.

Kaikki pistetaulukkofunktiot sijaitsevat kohteessa ISteamUserGameStats.h. Steamworks-esimerkissä käytetään kahta mallipistetaulukkoa. Pelin pistetaulukkoja voi tarkastella ja hallita pelin Steamworks-hallintasivulla.

Aluksi

Asynkroniset pistetaulukon toiminnot palauttavat Steam-ohjelmointirajapintakutsun tuloksena kutsumanimen. Lisätietoja näiden tulosten vastaanottamisesta saat aloitusoppaan kutsutuloksia käsittelevästä osiosta.

Pistetaulukon luominen

Pistetaulukot ovat sovelluskohtaisia. Ne määritetään Steamworks-kumppanisivuston pelinhallintasivulla tai ohjelmointirajapinnan kautta.

Verkon kautta luominen

Voit luoda ja hallita pistetaulukoita Steamworks-sovellushallinnassa sovellustunnuksellasi, kun siirryt kohtaan Tilastot ja saavutukset -> Pistetaulukot.
spacewar_leaderboards

Pistetaulukon määrittäminen edellyttää seuraavien kenttien täyttämistä:
  • Nimi: valitse sisäisen kehityksen kannalta looginen nimi.
  • Yhteisönimi: jos pistetaulukko näytetään yhteisökeskuksessa, valitse tähän julkisesti näkyvä nimi. Jos nimeä ei anneta, pistetaulukkoa ei näytetä.
  • Lajittelutapa: määritä pistetaulukon lajittelujärjestys. Valitse nouseva järjestys, jos taulukko perustuu sijoitukseen. Valitse laskeva järjestys, jos taulukko perustuu pistemäärään.
  • Näyttötapa: määrittää pistetaulukossa näytettävien tietojen tyypit. Vaihtoehtoina ovat numeerinen, sekunnit ja millisekunnit.
  • Kirjoitus: jos arvoksi määritetään "luotettu", asiakkaat eivät voi kirjata pistetaulukon tuloksia, vaan ne voidaan kirjata vain SetLeaderboardScore-www-ohjelmointirajapinnasta. Oletusarvona on epätosi.
  • Luku: jos arvoksi määritetään "kaverit", peli voi lukea vain käyttäjän kaverien pistetaulukkotuloksia. Www-ohjelmointirajapinnalla voidaan aina lukea kaikki tulokset. Oletusarvona on epätosi.

Luominen ohjelmointirajapinnan kautta

Pelisi pistetaulukot voi luoda joko Steamworks-sovellushallinnassa tai ohjelmoiden ISteamUserStats::FindOrCreateLeaderboard-kutsulla. Kaikki Steamworks-pelien pistetaulukot yksilöidään nimellä Steamissä. Pistetaulukon nimeä käytetään vain Steamworks-ohjelmointirajapinnalla tunnistukseen, eikä sitä näytetä Steam-yhteisön käyttäjille. Kun luot pistetaulukon, sinun on valittava seuraavat asiat:

  • Lajittelutapa: k_ELeaderboardSortMethodAscending (ylimpänä käyttäjä, jolla on alimmat pisteet) tai k_ELeaderboardSortMethodDescending (ylimpänä käyttäjä, jolla on korkeimmat pisteet)
  • Näyttötapa: ELeaderboardDisplayType kuvaa, mitä pistetaulukon pisteet edustavat. Sitä käytetään vain yhteisössä näytettävien pisteiden muotoiluun.

Jos luot pistetaulukot vain sovellushallinnan kautta, voit noutaa pistetaulukolle nimen ISteamUserStats::FindLeaderboard-kutsulla. FindLeaderboard ja FindOrCreateLeaderboard ovat asynkronisia menetelmiä, jotka palauttavat pistetaulukon nimen tietylle pistetaulukolle ISteamUserStats::LeaderboardFindResult_t-kutsun tuloksena.

Kun pistetaulukko on luotu, voit muokata lajittelu- ja näyttötapaa pelinhallintasivulla. Kun FindOrCreateLeaderboard kutsutaan olemassa olevalle pistetaulukolle, ohitetaan lajittelu- ja näyttötavan muuttujat.
HUOM! Jos pistetaulukko näytetään yhteisökeskuksessa, sille on pistetaulukon määrityksen yhteydessä annettava yhteisönimi. Jos nimeä ei anneta, pistetaulukkoa ei näytetä.

Pisteiden lataaminen

Kun haluat ladata pisteitä pistetaulukkoon, kutsu ISteamUserStats::UploadLeaderboardScore ja välitä kohdepistetaulukon kutsumanimi (joka noudetaan FindLeaderboard-menetelmällä), käyttäjän pisteet ja muut mahdolliset tiedot, jotka luodaan uusia pisteitä kirjattaessa. Kun käyttäjän pistetaulukkoa päivitetään ISteamUserStats::UploadLeaderboardScore-kutuslla, välitetyt tiedot korvaavat aiemmin tallennetut tiedot. Kun lataat käyttäjän pistetaulukkopisteitä, valittavana on kaksi päivitysmenetelmää:

  • ISteamUserStats::k_ELeaderboardUploadScoreMethodKeepBest – Steam vertaa käyttäjän uusia pisteitä pistetaulukkoon jo tallennettuihin pisteisiin ja säilyttää parhaat pisteet (alimmat pisteet laskevan lajittelujärjestyksen pistetaulukoille ja korkeimmat pisteet nousevan lajittelujärjestyksen pistetaulukoille.
  • ISteamUserStats::k_ELeaderboardUploadScoreMethodForceUpdate – Steam korvaa käyttäjän pisteet uusilla aina pistetaulukossa.
  • ISteamUserStats::UploadLeaderboardScore on asynkroninen kutsu, ja lataamisen tulos palautetaan kutsutuloksena LeaderboardScoreUploaded_t. Tulos sisältää ilmoituksen käyttäjän pisteiden muutoksesta sekä käyttäjän vanhan ja uuden maailmanlaajuisen sijoituksen. Lataamisen jälkeen Steamworks-pistetaulukot päivitetään välittömästi näyttämään uudet pisteet. Uusi merkintäjärjestys tulee samalla noudettavaksi DownloadLeaderboardEntries-kutsulla.

Käyttäjän luoman sisällön liittäminen

Kun pisteet on ladattu, voit liittää käyttäjän luomaa sisältöä merkintään. Se onnistuu helposti kutsumalla ISteamUserStats::AttachLeaderboardUGC. Tämä sisältö voi olla esimerkiksi video käyttäjästä saavuttamassa pisteet tai haamu, jota vastaan voi kisata. Liitetty kutsumanimi tulee saataville, kun merkintä noudetaan, jolloin muut käyttäjät voivat ladata sen. Lisätietoja käyttäjän luoman sisällön tuottamisesta ja lataamisesta saat Steam Cloud -dokumentaatiosta.

Liitettyä sisältöä voi käyttää, vaikka käyttäjä muuttaisi tai poistaisi tiedoston Cloud-pilvipalvelusta.

Pistetaulukkomerkintöjen noutaminen

Pistetaulukkomerkintöjä voi noutaa ISteamUserStats::DownloadLeaderboardEntries-kustulla ja käyttämällä nimeä, joka noudetaan ISteamUserStats::FindLeaderboard-kutsulla.

Kun olet noutanut kaikki ladatut merkinnät GetDownloadedLeaderboardEntry-kohteesta, merkintätiedot vapautetaan eivätkä SteamLeaderboardEntries_t-pistetaulukot ole enää voimassa LeaderboardScoresDownloaded_t-kohteessa.

Pistetaulukkotietojen noutaminen

Pistetaulukosta voi noutaa tietoja palautetulla FindLeaderboard-kutsulla seuraavasti:

ISteamUserStats::GetLeaderboardName
ISteamUserStats::GetLeaderboardEntryCount
ISteamUserStats::GetLeaderboardSortMethod
ISteamUserStats::GetLeaderboardDisplayType