0

这对我来说有点难以解释,但请看:

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

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

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

之后,每次您单击启动时,启动器都会读取该日期和时间,并计算自您上次投票以来是否已过去 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);
        }
    }
4

1 回答 1

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;
    }
}
于 2013-04-14T02:03:53.660 回答