添加限制计时器(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小时只能使用一次的地方。
每当玩家运行该命令时,您都可以在数据库中插入时间戳。在命令方法的开头,输入一些代码来检查数据库中的时间戳,看看它是否在最后24小时内。如果是的话,该方法的突破或放一些功能来提醒用户他们经常玩游戏。
您可以创建另一个名为CanPlay的方法,返回bool,并将其传递给用户和当前时间戳。使用该方法来确定用户是否可以播放。