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

时间:2015-11-05 20:25:48

标签: c#

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

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小时使用一次。

1 个答案:

答案 0 :(得分:1)

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

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