在经过一定时间后给予用户奖励

本文关键字:用户 经过 定时间 | 更新日期: 2023-09-27 18:30:58

在我的游戏中,用户每10分钟获得一次奖励。

即使他们离开应用程序/游戏,当他们回来时,如果 10 分钟过去了,他们仍然会得到奖励。

例如,用户正在玩游戏,离开游戏还有 5 分钟,距离下一个奖励。

然后,用户离开游戏并在一小时后返回。

我将如何查看自上次开盘以来是否已经过去了 5 分钟?

有谁知道如何做到这一点?我正在使用团结。

在经过一定时间后给予用户奖励

你可能想使用 DateTime struct ,尤其是它的DateTime.Now

  1. 当您的玩家离开游戏时,保存日期时间:

    DateTime leaveDateTime = DateTime.Now;
    //Store leaveDateTime value
    
  2. 当您的播放器恢复时,

    //load leaveDateTime value
    TimeSpan diff = DateTime.Now - leaveDateTime;
    

然后使用您的TimeSpan值(选中TimeSpan.TotalMinutes)为您的玩家提供奖励。

if (TimeSpan.TotalMinutes >= 5){
    //Give rewards for your players
}

伊恩的回答是可以的,但它有一个问题,如果用户更改系统(PC、手机等)日期和时间,假设在日期上加上一年,当他回到游戏中时,他将获得无数的奖励不公平!我认为当前日期时间必须从ntp server而不是DateTime.Now接收。

看看这个答案:如何使用C#查询NTP服务器?

相关文章: