Prestaties voor PlayDrop-games
Declareer standaard- en incrementele prestaties met iconen in catalogue.json, ontgrendel ze en meld voortgang met sdk.achievements.
Prestaties markeren doelen in je game, met een icoon en een beschrijving die spelers op PlayDrop zien. Ze werken voor gasten en ingelogde spelers.
Prestaties declareren
{
"achievements": [
{ "key": "first-win", "displayName": "First flag", "description": "Reach the flag once",
"kind": "STANDARD", "icon": "achievements/first-win.png" },
{ "key": "collector", "displayName": "Collector", "description": "Collect 100 stars",
"kind": "INCREMENTAL", "maxProgress": 100, "icon": "achievements/collector.png" },
{ "key": "secret-room", "displayName": "Secret room", "description": "Find the hidden room",
"kind": "STANDARD", "hidden": true, "icon": "achievements/secret-room.png" }
]
}keyvolgt hetzelfde formaat als de sleutels van ranglijsten.kindisSTANDARD(één keer ontgrendeld) ofINCREMENTAL(ontgrendeld wanneer de voortgangmaxProgressbereikt, een positief geheel getal).iconis een PNG in het pakket. Gebruik een duidelijke vierkante afbeelding die ook klein goed leesbaar is.hidden: truehoudt de naam en beschrijving geheim tot de prestatie is ontgrendeld.
Gepubliceerde sleutels kun je niet verwijderen, en kind, maxProgress en hidden kunnen niet veranderen. Stel een prestatie buiten gebruik met "status": "RETIRED".
Ontgrendelen en voortgang melden
await sdk.achievements.unlock("first-win");
await sdk.achievements.setProgressAtLeast("collector", starsCollected);
const { achievements } = await sdk.achievements.list();
const { achievement } = await sdk.achievements.get("collector");setProgressAtLeastneemt het totaal tot nu toe, nooit een toename. Voortgang stijgt alleen, is begrensd opmaxProgressen ontgrendelt de prestatie daar.- Beide aanroepen retourneren
{ accepted, changed, unlocked, progress, unlockedAt, achievement };changedis false als er niets nieuws is gebeurd, zodat je je eigen melding maar één keer toont. list({ includeHiddenDefinitions: true, includeRetired: true })neemt verborgen en buiten gebruik gestelde definities mee.
Ontgrendel alleen tijdens echt spelen, nooit in voorbeelden of opnames. Zonder enige spelersessie slagen de aanroepen zonder dat er iets wordt opgeslagen.
Goede prestaties
Combineer vroege prestaties die de game uitleggen met doelen voor de lange termijn. Noem de actie, niet de beloning: "Win zonder schade op te lopen" zegt wat je moet doen. Een dozijn doordachte prestaties is beter dan honderd onbenullige.