Reward dan dompet
Reward harian, mingguan, atau sekali yang diputuskan server dan masuk ke dompet setiap pemain.
Komentar kode dan nama API tetap dalam bahasa Inggris agar sesuai dengan SDK.
Di halaman ini
Membuat reward#
Buat reward di halaman Reward:
| Field | Arti |
|---|---|
| Key reward | Pengenal yang dipakai di kode, mis. daily_coins. |
| Jumlah dan mata uang | Berapa banyak yang ditambahkan, dan ke mata uang apa (mis. coins). |
| Bisa diklaim | daily, weekly, atau once. |
| Aktif | Reward yang tidak aktif disembunyikan dan tidak bisa diklaim. |
Daftar reward#
Jika ada pemain yang login, setiap reward menyertakan claimable dan next_claim_at:
var available = await Majacloud.Rewards.ListAsync();
foreach (var reward in available.Value)
Debug.Log(reward.RewardKey + " claimable: " + reward.Claimable + " next: " + reward.NextClaimAt);var available := await Majacloud.rewards.list()
for reward in available.value:
print(reward.reward_key, " claimable: ", reward.claimable, " next: ", reward.next_claim_at)const available = await mc.rewards.list();
for (const reward of available.value) console.log(reward.reward_key, reward.claimable, reward.next_claim_at);curl https://majacloud.majanite.com/v1/rewards -H "X-Project-ID: $PROJECT_ID" -H "X-Client-Key: $CLIENT_KEY" \
-H "Authorization: Bearer $TOKEN"Klaim#
Server memutuskan apakah klaim diizinkan dan menambah saldo dompet secara atomik. Klaim kedua dalam periode yang sama gagal dengan conflict dan details.next_claim_at.
var claim = await Majacloud.Rewards.ClaimAsync("daily_coins");
if (claim.Ok)
{
Debug.Log($"+{claim.Value.Amount} {claim.Value.Currency}, balance {claim.Value.Balance}");
}
else if (claim.Error.Code == MajacloudErrorCode.Conflict)
{
DateTime? next = claim.Error.GetDetailDateTime("next_claim_at"); // UTC
}var claim := await Majacloud.rewards.claim("daily_coins")
if claim.ok:
print("+%s %s, balance %s" % [claim.value.amount, claim.value.currency, claim.value.balance])
elif claim.error == "conflict":
print("Come back at ", claim.details.next_claim_at) # UTCconst claim = await mc.rewards.claim('daily_coins');
if (claim.ok) {
console.log(`+${claim.value.amount} ${claim.value.currency}, balance ${claim.value.balance}`);
} else if (claim.error.code === 'conflict') {
console.log('Come back at ' + claim.error.details.next_claim_at); // UTC
}curl -X POST https://majacloud.majanite.com/v1/rewards/claim -H "X-Project-ID: $PROJECT_ID" -H "X-Client-Key: $CLIENT_KEY" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" -d '{"reward_key": "daily_coins"}'Dompet#
Baca saldo pemain per mata uang:
var wallet = await Majacloud.Rewards.GetWalletAsync();
Debug.Log("Coins: " + wallet.Value.Coins + ", gems: " + wallet.Value.Get("gems"));var wallet := await Majacloud.rewards.get_wallet()
print("Coins: ", wallet.value.get("coins", 0))const wallet = await mc.rewards.getWallet();
console.log('Coins: ' + (wallet.value.balances.coins || 0));curl https://majacloud.majanite.com/v1/wallet -H "X-Project-ID: $PROJECT_ID" -H "X-Client-Key: $CLIENT_KEY" \
-H "Authorization: Bearer $TOKEN"Kapan reward direset#
Reward harian bisa diklaim lagi mulai pukul 00:00 UTC, reward mingguan mulai Senin pukul 00:00 UTC, dan reward sekali tidak bisa diklaim lagi.