奖励和钱包

由服务器判定的每日、每周或一次性奖励,发放到每位玩家的钱包。

代码注释和 API 名称保留英文,以便与 SDK 保持一致。

本页内容

定义奖励#

在奖励页面中创建奖励:

字段含义
奖励键代码中使用的标识符,例如 daily_coins。
数量和货币发放的数量,以及发放到哪种货币(例如 coins)。
冷却周期daily、weekly 或 once。
启用未启用的奖励会被隐藏,且无法领取。

列出奖励#

玩家已登录时,每个奖励都包含 claimable 和 next_claim_at:

C#
var available = await Majacloud.Rewards.ListAsync();
foreach (var reward in available.Value)
    Debug.Log(reward.RewardKey + " claimable: " + reward.Claimable + " next: " + reward.NextClaimAt);

领取#

服务器决定是否允许领取,并以原子操作发放到钱包。在同一周期内再次领取会失败,并返回 conflict 和 details.next_claim_at。

C#
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
}

钱包#

按货币读取玩家的余额:

C#
var wallet = await Majacloud.Rewards.GetWalletAsync();
Debug.Log("Coins: " + wallet.Value.Coins + ", gems: " + wallet.Value.Get("gems"));

奖励何时重置#

每日奖励从 00:00 UTC 起可再次领取,每周奖励从周一 00:00 UTC 起可再次领取,一次性奖励则不能再次领取。

搜索页面标题、小标题和正文。

↑↓ 选择 ↵ 打开 Esc 关闭