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.
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::GetLeaderboardNameISteamUserStats::GetLeaderboardEntryCountISteamUserStats::GetLeaderboardSortMethodISteamUserStats::GetLeaderboardDisplayType