将操作限制为每分钟一次

时间:2015-08-05 18:44:39

标签: c#

 if (player.Stars < 20 && text[0] != '/')
        {
        player.SendInfo("You may only talk once per minute.");
            return;
        }

添加到If的最简单方法是什么?如果玩家在一分钟内尝试发送超过1条消息,它会被停止?

2 个答案:

答案 0 :(得分:5)

实现此目的的一种简单方法是在player对象上存储某种时间戳,并在if语句中对其进行检查。您还希望确保稍后在函数(或其他位置)中设置它以使其正常工作。

以下是一个示例(LastTalked是时间戳的名称,但显然可以随意调用它):

if (player.Stars < 20 && text[0] != '/' && DateTime.UtcNow - player.LastTalked < TimeSpan.FromMinutes(1))
{
    player.SendInfo("You may only talk once per minute.");
    return;
}

player.LastTalked = DateTime.UtcNow;

请注意,这仅基于您问题中提供的信息;可能还有其他考虑因素需要考虑。

答案 1 :(得分:0)

您应存储上次留言时间,并将当前时间与之比较。

如果差异小于1分钟 - 阻止SendInfo