FormLoginQueue.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. namespace DeepMMO.Client.Win32.Forms
  11. {
  12. public partial class FormLoginQueue : Form
  13. {
  14. private readonly RPGClient client;
  15. private readonly Data.ServerInfo server;
  16. public FormLoginQueue(RPGClient client, Protocol.Client.ClientEnterGateResponse rsp)
  17. {
  18. InitializeComponent();
  19. this.client = client;
  20. this.client.OnGateQueueUpdated += Client_OnGateQueueUpdated;
  21. this.server = RPGClientTemplateManager.Instance.GetServer(client.last_EnterGateRequest.c2s_serverID);
  22. this.label1.Text = $"【{server?.name}】服务器人数已满,目前排位在{rsp.s2c_queueCount + 1},预计等待时间{rsp.s2c_queuetTime}。";
  23. }
  24. protected override void OnClosed(EventArgs e)
  25. {
  26. this.client.OnGateQueueUpdated -= Client_OnGateQueueUpdated;
  27. base.OnClosed(e);
  28. }
  29. private void Client_OnGateQueueUpdated(Protocol.Client.ClientEnterGateInQueueNotify obj)
  30. {
  31. if (!IsDisposed)
  32. {
  33. this.label1.Text = $"【{server?.name}】服务器人数已满,目前排位在{obj.QueueIndex + 1},预计等待时间{obj.ExpectTime}。";
  34. if (obj.IsEnetered) this.Close();
  35. }
  36. }
  37. }
  38. }