添加限制计时器(Like只能每24小时完成/使用一次)

本文关键字:一次 24小时 计时器 Like 添加 | 更新日期: 2023-09-27 18:20:56

我正在"开发"的游戏专用服务器的命令代码。

internal class LotteryCommand : Command
{
    public LotteryCommand()
        : base("lottery", 1)
    {
    }
    //lottery can be used once every 24h, just to attract users making them want to get on at least once a day!
    protected override bool Process(Player player, RealmTime time, string[] args)
    {
        Random rand = new Random();
        string name = player.Name;
        string lottonum = rand.Next(0, 100).ToString();
         //50 50 chance!
        if (int.Parse(lottonum) > 49)
        {
            player.Manager.Database.DoActionAsync(db =>
            {
                player.Credits = db.UpdateCredit(player.Client.Account, +5000);
                player.UpdateCount++;
            });
        }
        foreach (Client i in player.Manager.Clients.Values)
        {
            i.SendPacket(new TextPacket
            {
                BubbleTime = 0,
                Stars = -1,
                Name = "Lottery - " + name,
                Text = "rolled a " + lottonum
            });
        }
        return true;
    }
}

如果我希望命令每24小时只使用一次,有人能告诉我该添加什么吗?对于那些不能告诉/想知道它/彩票的人,他们会说"彩票-玩家打出了一个#",如果#是50或更高,使用该命令的玩家将赢得5k黄金(积分),如果低于,他们什么都不会赢。我只想把它放在每24小时只能使用一次的地方。

添加限制计时器(Like只能每24小时完成/使用一次)

每当玩家运行该命令时,您都可以在数据库中插入时间戳。在命令方法的开头,输入一些代码来检查数据库中的时间戳,看看它是否在最后24小时内。如果是的话,该方法的突破或放一些功能来提醒用户他们经常玩游戏。

您可以创建另一个名为CanPlay的方法,返回bool,并将其传递给用户和当前时间戳。使用该方法来确定用户是否可以播放。