【发布时间】:2013-04-14 01:29:57
【问题描述】:
这对我来说有点难以解释,但请看:
我做了一个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);
}
}
【问题讨论】:
-
在不相关的注释上,为什么要这样做:voteForm.Show(); voteForm.BringToFront(); this.Enabled = false; ??为什么不改用 ShowDialog() 呢?
-
我没有使用 ShowDialog 因为我已经尝试过并且遇到了一些问题,我现在使用的那个完美地完成了相同的任务,BringToFront 是为了确保它位于主窗体的顶部.也禁用是在投票打开时禁用和冻结主窗体