游戏的私人服务器命令代码我正在开发"。
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小时使用一次。
答案 0 :(得分:1)
每当玩家运行该命令时,您都可以将时间戳插入数据库。在命令方法的开头,添加一些代码来检查数据库中的时间戳,看看它是否在过去的24小时内。如果是,则突破该方法或提供一些功能以提醒他们经常玩的用户。
您可以创建另一个名为CanPlay的方法,该方法返回一个bool,并将用户和当前时间戳传递给它。使用该方法确定用户是否可以玩。