العب معًا
الإنجازات في ألعاب PlayDrop
صرّح بإنجازات قياسية وتدريجية مع أيقوناتها في catalogue.json، ثم افتحها وأبلغ عن التقدم باستخدام sdk.achievements.
تحدد الإنجازات أهدافًا في لعبتك، مع أيقونة ووصف يراهما اللاعبون على PlayDrop. وتعمل مع الضيوف واللاعبين المسجّلي الدخول.
صرّح بالإنجازات
json
{
"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" }
]
}- يتبع
keyصيغة مفاتيح لوحات المتصدرين نفسها. - قيمة
kindهيSTANDARD(يُفتح مرة واحدة) أوINCREMENTAL(يُفتح عندما يبلغ التقدمmaxProgress، وهو عدد صحيح موجب). iconصورة PNG داخل الحزمة. استخدم صورة مربعة واضحة تبقى مقروءة بأحجام صغيرة.- يُبقي
hidden: trueالاسم والوصف سرًا حتى يُفتح الإنجاز.
لا يمكن حذف المفاتيح المنشورة، ولا يمكن تغيير kind وmaxProgress وhidden. أوقف إنجازًا باستخدام "status": "RETIRED".
افتح الإنجازات وأبلغ عن التقدم
js
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");- تأخذ
setProgressAtLeastالإجمالي حتى الآن، وليس مقدار الزيادة أبدًا. التقدم يرتفع فقط، ويُحدّ عندmaxProgressويُفتح الإنجاز عنده. - يعيد الاستدعاءان
{ accepted, changed, unlocked, progress, unlockedAt, achievement }؛ وتكون قيمةchangedهي false عندما لا يحدث شيء جديد، فتعرض إشعارك المنبثق الخاص مرة واحدة فقط. - تتضمن
list({ includeHiddenDefinitions: true, includeRetired: true })التعريفات المخفية والموقوفة.
افتح الإنجازات أثناء اللعب الحقيقي فقط، ولا تفتحها أبدًا في المعاينات أو الالتقاطات. ودون أي جلسة لاعب، تنجح الاستدعاءات دون حفظ أي شيء.
إنجازات جيدة
امزج إنجازات مبكرة تعلّم اللعبة بأهداف طويلة الأمد. سمِّ الفعل لا المكافأة: «اربح دون أن تتلقى أي ضرر» يقول ما يجب فعله. اثنا عشر إنجازًا مدروسًا أفضل من مئة إنجاز تافه.