只有在经过一段时间后才执行某些操作

时间:2013-04-14 01:29:57

标签: c# events time timer vote

这有点难以解释,但看看:

我制作了一个MMORPG服务器启动器,它有一个启动按钮,当你点击它弹出一个小窗口并要求你投票给服务器然后你可以再点击开始启动游戏(倒计时10秒)在你真正开始游戏之前)

唯一的一点是,投票网站每12个小时只接受一次用户的投票(基于IP和基于cookie),并且在有人投票一次之后,有一个小窗口弹出并等待每次你都有点烦人想要开始游戏。

我的想法是: 当有人点击打开投票窗口时,他的系统的日期和确切的小时写入文件。

之后,每次点击开始时,发射器都会读取该日期和时间,并计算自上次投票后是否已经过了12个小时,如果是,它会再次要求您投票,如果没有,它将跳过部分并直接开始游戏。

我不是很有经验,我不知道从哪里开始以及如何开展这项工作,我们非常感谢您的帮助。

谢谢!

如果可以提供帮助,请参加我的活动。

    private void btnStart_Click(object sender, EventArgs e)
    {
        var voteForm = new VoteWindow();
        voteForm.Show();
        voteForm.BringToFront();
        this.Enabled = false;
    }

这是我实际开始游戏的代码。

    private void btnStart2_Click(object sender, EventArgs e)
    {
        string error1 = "Deleted because it was too long...";
        string title1 = "Deleted because it was too long...";

        if (File.Exists("engine.exe"))
        {
            Process.Start("engine.exe", "/load /config debug");
            Application.Exit();
        }
        else
        {
            MessageBox.Show(error1, title1, MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }

1 个答案:

答案 0 :(得分:1)

只需使用Properties.Settings即可。您可以转到Solution Explorer然后展开Properties并打开Settings.Settings来创建新设置。在此页面上,您可以创建一个新的System.DateTime对象。然后你会做这样的事情。

private void btnStart_Click(object sender, EventArgs e)
{
    TimeSpan ts = DateTime.Now - Properties.Settings.Default.MySetting;

    if (ts.TotalHours > 12)
    {
        Properties.Settings.Default.MySetting = DateTime.Now;
        Properties.Settings.Default.Save();

        var voteForm = new VoteWindow();
        voteForm.Show();
        voteForm.BringToFront();
        this.Enabled = false;
    }
}