الدروس
المكافأة للاعبين
نسخ الصفحة
دفع اللاعبين بـ $LIA من خزانة المكافآت الخاصة بتطبيقك، من خادمك. مكافأة يومية كمثال، آمنة للإعادة والحدود الخاصة بك.
يحتاج تطبيقك إلى حوض مكافآت، ممول من قبل فريق Lia (انظر خزائن المكافآت. يتم إعطاء المكافآت فقط من خادمك، مع مفتاحك.
#مكافأة يومية
يمكن لكل لاعب استرداد 2 LIA مرة واحدة يوميًا، بعد الانتهاء من مستوى.
import { lia } from "./lia.js";
app.post("/api/daily-bonus", async (req, res) => {
const playerId = await playerFrom(req.body.session); // see Verify on your server
if (!playerId) return res.status(401).end();
if (!(await db.finishedALevelToday(playerId))) return res.status(403).json({ error: "play_first" });
const day = new Date().toISOString().slice(0, 10); // 2026-11-01
try {
const result = await lia("POST", "/rewards", {
playerId,
amount: 2,
key: `daily:${day}:${playerId}`, // one a day per player, however often this runs
reason: "Daily bonus",
});
res.json({ paid: result.status === "paid", amount: result.amount });
} catch (error) {
if (error.data?.error === "pool_empty") return res.status(503).json({ error: "bonus_paused" });
if (error.data?.error === "daily_limit") return res.status(429).json({ error: "come_back_tomorrow" });
throw error;
}
});في الصفحة:
const { paid, amount } = await api("/api/daily-bonus", {});
if (paid) {
Lia.haptic("success");
Lia.toast("+" + amount + " LIA");
}#اختيار المفاتيح
المفتاح هو ما يجعل المكافأة آمنة. المفتاح نفسه لا يدفع مرتين، لذلك اجعله يُشير إلى سبب المكافأة، وليس الطلب:
| المكافأة | المفتاح |
|---|---|
| مكافأة يومية | daily:2026-11-01:p_3f9c… |
| مكان في منافسة | tournament-44:place-1:p_3f9c… |
| مهمة منتهية | quest-7:p_3f9c… |
| فيديو تم مشاهدته | ad:ad_8e1c… |
إعادة محاولة بنفس المفتاح بعد انتهاء المهلة تجيب { "status": "duplicate" } وتدفع لا شيء إضافيًا، لذلك إعادة المحاولة دائمًا آمنة. لا تعيد المحاولة بملف تعريف جديد.
#راقب الحوض
const { balance, dailyCapPerPlayer } = await lia("GET", "/pool");
if (balance < 100) alertTheTeam(`Reward pool is down to ${balance} LIA`);عندما يمكن للنقطة أن'لإغلاق المكافأة، POST /rewards الإجابات 409 pool_empty. أخبر اللاعبين بلطف واطلب من فريق Lia زيادة رصيدهم. عندما يحصل اللاعب على تطبيقك'الحد اليومي، يجيب 429 daily_limit أو الحد هو لكل لاعب لكل يوم UTC، ويتم تحديده من قبل الفريق).
#في الاختبار
مع مفتاح الاختبار الخاص بك، المكافآت وهمية: تسجلها، مع واجهة برمجية، ولكن لا توجد حركات $LIA، ولا يتم تغيير الحوض والحد اليومي'لم تستخدم. جرّب مفاتيحك ومعالجة الأخطاء لديك أولاً.
#اجعل المكافآت عادلة
- اتخذ القرار على الخادم. ما يكسبه الشخص يجب أن يأتي من ما رآه خادمك (لعبة منتهية، فيديو مؤكد)، وليس من صفحة تقول ذلك.
- انتبه لحدودك الخاصة كما هو الحال مع كل لاعب وبشكل يومي، لذلك يمكن للاعب واحد'لتفريغ بطاريتك.
- اذكر السبب. ال
reasonيظهر في اللاعب'س النشاط تحت تطبيقك'اسمها.
تم الترجمة تلقائيًا. الإنجليزية هي مصدر الحقيقة. اقرأ باللغة الإنجليزية