รางวัลและกระเป๋าเงิน
รางวัลรายวัน รายสัปดาห์ หรือครั้งเดียวที่เซิร์ฟเวอร์เป็นผู้ตัดสิน และเติมเข้ากระเป๋าเงินของผู้เล่นแต่ละคน
คอมเมนต์ในโค้ดและชื่อ API ยังคงเป็นภาษาอังกฤษเพื่อให้ตรงกับ SDK
กำหนดรางวัล#
สร้างรางวัลในหน้า รางวัล:
| ฟิลด์ | ความหมาย |
|---|---|
| คีย์รางวัล | ตัวระบุที่ใช้ในโค้ด เช่น daily_coins |
| จำนวนและสกุลเงิน | จำนวนที่จะเติม และสกุลเงินที่เติมเข้า (เช่น coins) |
| คูลดาวน์ | daily, weekly หรือ once |
| ใช้งานอยู่ | รางวัลที่ไม่ได้ใช้งานจะถูกซ่อนและรับไม่ได้ |
แสดงรายการรางวัล#
เมื่อมีผู้เล่นเข้าสู่ระบบ แต่ละรางวัลจะมี claimable และ 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"รับรางวัล#
เซิร์ฟเวอร์เป็นผู้ตัดสินว่ารับรางวัลได้หรือไม่ และเติมเข้ากระเป๋าเงินแบบอะตอมิก การรับครั้งที่สองในรอบเดียวกันจะล้มเหลวด้วย conflict และ 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"}'กระเป๋าเงิน#
อ่านยอดคงเหลือของผู้เล่นแยกตามสกุลเงิน:
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"เวลารีเซ็ตรางวัล#
รางวัลรายวันรับได้อีกครั้งตั้งแต่ 00:00 UTC รางวัลรายสัปดาห์ตั้งแต่วันจันทร์ 00:00 UTC ส่วนรางวัลแบบครั้งเดียวจะรับซ้ำไม่ได้