Prestationer för PlayDrop-spel
Deklarera vanliga och stegvisa prestationer med ikoner i catalogue.json, lås upp dem och rapportera framsteg med sdk.achievements.
Prestationer markerar mål i ditt spel, med en ikon och en beskrivning som spelarna ser på PlayDrop. De fungerar för gäster och inloggade spelare.
Deklarera prestationer
{
"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" }
]
}keyföljer samma format som nycklar för topplistor.kindärSTANDARD(låses upp en gång) ellerINCREMENTAL(låses upp när framstegen nårmaxProgress, ett positivt heltal).iconär en PNG i paketet. Använd en tydlig, kvadratisk bild som syns bra i små storlekar.hidden: truehåller namn och beskrivning hemliga tills prestationen låses upp.
Publicerade nycklar kan inte tas bort, och kind, maxProgress och hidden kan inte ändras. Pensionera en prestation med "status": "RETIRED".
Lås upp och rapportera framsteg
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");setProgressAtLeasttar summan hittills, aldrig en ökning. Framstegen ökar bara, begränsas tillmaxProgressoch låser upp prestationen där.- Båda anropen returnerar
{ accepted, changed, unlocked, progress, unlockedAt, achievement };changedär false när inget nytt hände, så du kan visa ditt eget meddelande bara en gång. list({ includeHiddenDefinitions: true, includeRetired: true })tar med dolda och pensionerade definitioner.
Lås bara upp under riktigt spelande, aldrig i förhandsvisningar eller inspelningar. Utan någon spelarsession slutförs anropen utan att något sparas.
Bra prestationer
Blanda tidiga prestationer som lär ut spelet med långsiktiga mål. Namnge handlingen, inte belöningen: ”Vinn utan att ta skada” säger vad man ska göra. Ett dussin genomtänkta prestationer slår hundra triviala.