diff --git a/FunGame.Core.Api/Model/Enum/CommonEnums.cs b/FunGame.Core.Api/Model/Enum/CommonEnums.cs
index 074da2c..ceb0225 100644
--- a/FunGame.Core.Api/Model/Enum/CommonEnums.cs
+++ b/FunGame.Core.Api/Model/Enum/CommonEnums.cs
@@ -46,6 +46,13 @@ namespace FunGame.Core.Api.Model.Enum
Gaming
}
+ public enum ClientState
+ {
+ Online,
+ WaitConnect,
+ WaitLogin
+ }
+
#endregion
#region Type
diff --git a/FunGame.Core.Api/Util/INIHelper.cs b/FunGame.Core.Api/Util/INIHelper.cs
index 997b0aa..ff334c9 100644
--- a/FunGame.Core.Api/Util/INIHelper.cs
+++ b/FunGame.Core.Api/Util/INIHelper.cs
@@ -62,9 +62,9 @@ namespace FunGame.Core.Api.Util
}
///
- /// 初始化ini文件
+ /// 初始化服务器ini模板文件
///
- public void Init()
+ public void InitServerConfigs()
{
/**
* Server
@@ -90,5 +90,23 @@ namespace FunGame.Core.Api.Util
WriteINI("MySQL", "DBUser", "root");
WriteINI("MySQL", "DBPassword", "pass");
}
+
+ ///
+ /// 初始化客户端ini模板文件
+ ///
+ public void InitClientConfigs()
+ {
+ /**
+ * Config
+ */
+ WriteINI("Config", "AutoConnect", "true");
+ WriteINI("Config", "AutoLogin", "false");
+ /**
+ * Account
+ */
+ WriteINI("Account", "UserName", "");
+ WriteINI("Account", "Password", "");
+ WriteINI("Account", "AutoKey", "");
+ }
}
}
diff --git a/FunGame.Desktop/Models/Component/ShowMessage.cs b/FunGame.Desktop/Models/Component/ShowMessage.cs
index cbf1ece..df9b46e 100644
--- a/FunGame.Desktop/Models/Component/ShowMessage.cs
+++ b/FunGame.Desktop/Models/Component/ShowMessage.cs
@@ -124,12 +124,13 @@ namespace FunGame.Desktop.Models.Component
Task.Run(() =>
{
if (InvokeRequired)
- BeginInvoke(action);
+ Invoke(action);
else
action();
});
+ Show();
}
- ShowDialog();
+ else ShowDialog();
}
///
diff --git a/FunGame.Desktop/Models/Config/Config.cs b/FunGame.Desktop/Models/Config/Config.cs
index 951947a..772d813 100644
--- a/FunGame.Desktop/Models/Config/Config.cs
+++ b/FunGame.Desktop/Models/Config/Config.cs
@@ -16,8 +16,20 @@ namespace FunGame.Desktop.Models.Config
*/
public static FunGameEnums.FunGame FunGameType = FunGameEnums.FunGame.FunGame_Desktop;
- public static INIHelper DefaultINIHelper = new();
- public static AssemblyHelper DefaultAssemblyHelper = new();
+ public static INIHelper INIHelper = new();
+ public static AssemblyHelper AssemblyHelper = new();
+
+ /**
+ * FunGame Desktop Configs
+ */
+ public static bool FunGame_isAutoConnect = true; // 是否自动连接服务器
+ public static bool FunGame_isAutoLogin = false; // 是否自动登录
+ public static bool FunGame_isMatching = false; // 是否在匹配中
+ public static bool FunGame_isConnected = false; // 是否连接上服务器
+ public static bool FunGame_isRetrying = false; // 是否正在重连
+ public static bool FunGame_isAutoRetry = true; // 是否自动重连
+ public static string FunGame_Roomid = "-1"; // 房间号
+ public static string FunGame_Notice = ""; // 公告
/**
* WebHelper Configs
@@ -26,10 +38,13 @@ namespace FunGame.Desktop.Models.Config
public const string WebHelper_SetGreenAndPing = "-WebHelper .set greenandping";
public const string WebHelper_SetRed = "-WebHelper .set red";
public const string WebHelper_SetYellow = "-WebHelper .set yellow";
+ public const string WebHelper_WaitConnectAndSetYellow = "-WebHelper .waitconnect .set yellow";
+ public const string WebHelper_WaitLoginAndSetYellow = "-WebHelper .waitlogin .set yellow";
public const string WebHelper_Disconnected = "-WebHelper .disconnected";
public const string WebHelper_LogOut = "-WebHelper .logout";
public const string WebHelper_GetUser = "-WebHelper .get user";
public const string WebHelper_SetUser = "-WebHelper .set user";
+ public const string WebHelper_SetNotice = "-WebHelper .set notice";
public static int WebHelper_HeartBeatFaileds = 0;
/**
@@ -55,6 +70,8 @@ namespace FunGame.Desktop.Models.Config
public const string FunGame_CreateMix = "创建游戏 混战";
public const string FunGame_CreateTeam = "创建游戏 团队";
public const string FunGame_StartGame = "开始游戏";
+ public const string FunGame_Connect = "连接服务器";
+ public const string FunGame_Disconnect = "断开连接";
public const string FunGame_Retry = "重新连接";
public const string FunGame_AutoRetryOn = "开启自动重连";
public const string FunGame_AutoRetryOff = "关闭自动重连";
@@ -68,13 +85,21 @@ namespace FunGame.Desktop.Models.Config
FunGame_CreateMix,
FunGame_CreateTeam,
FunGame_StartGame,
- FunGame_Retry,
+ FunGame_Disconnect,
FunGame_AutoRetryOn,
FunGame_AutoRetryOff
};
public static readonly object[] PresetNoLoginItems =
{
FunGame_PresetMessage,
+ FunGame_Disconnect,
+ FunGame_AutoRetryOn,
+ FunGame_AutoRetryOff
+ };
+ public static readonly object[] PresetNoConnectItems =
+ {
+ FunGame_PresetMessage,
+ FunGame_Connect,
FunGame_Retry,
FunGame_AutoRetryOn,
FunGame_AutoRetryOff
diff --git a/FunGame.Desktop/Models/Config/Usercfg.cs b/FunGame.Desktop/Models/Config/Usercfg.cs
index e083630..e105040 100644
--- a/FunGame.Desktop/Models/Config/Usercfg.cs
+++ b/FunGame.Desktop/Models/Config/Usercfg.cs
@@ -7,7 +7,7 @@ using System.Threading.Tasks;
namespace FunGame.Desktop.Models.Config
{
- public static class Usercfg
+ public class Usercfg
{
/**
* 玩家设定内容
@@ -17,10 +17,5 @@ namespace FunGame.Desktop.Models.Config
public static bool Match_Mix = false; // 混战模式选项
public static bool Match_Team = false; // 团队模式选项
public static bool Match_HasPass = false; // 密码房间选项
- public static bool FunGame_isMatching = false; // 是否在匹配中
- public static bool FunGame_isConnected = false; // 是否连接上服务器
- public static bool FunGame_isRetrying = false; // 是否正在重连
- public static bool FunGame_isAutoRetry = true; // 是否自动重连
- public static string FunGame_roomid = "-1"; // 房间号
}
}
diff --git a/FunGame.Desktop/UI/Main/Main.Designer.cs b/FunGame.Desktop/UI/Main/Main.Designer.cs
index 1e0983c..a6e1750 100644
--- a/FunGame.Desktop/UI/Main/Main.Designer.cs
+++ b/FunGame.Desktop/UI/Main/Main.Designer.cs
@@ -136,13 +136,13 @@ namespace FunGame.Desktop.UI
this.Connection.Name = "Connection";
this.Connection.Size = new System.Drawing.Size(130, 23);
this.Connection.TabIndex = 92;
- this.Connection.Text = "服务器连接失败";
+ this.Connection.Text = "等待连接服务器";
this.Connection.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// Light
//
this.Light.BackColor = System.Drawing.Color.Transparent;
- this.Light.Image = global::FunGame.Desktop.Properties.Resources.red;
+ this.Light.Image = global::FunGame.Desktop.Properties.Resources.yellow;
this.Light.Location = new System.Drawing.Point(777, 426);
this.Light.Name = "Light";
this.Light.Size = new System.Drawing.Size(18, 18);
diff --git a/FunGame.Desktop/UI/Main/Main.cs b/FunGame.Desktop/UI/Main/Main.cs
index 8fc6b5f..fe9ff2e 100644
--- a/FunGame.Desktop/UI/Main/Main.cs
+++ b/FunGame.Desktop/UI/Main/Main.cs
@@ -50,10 +50,11 @@ namespace FunGame.Desktop.UI
///
public void Init()
{
- SetButtonEnableIfLogon(false);
+ SetButtonEnableIfLogon(false, ClientState.WaitConnect);
SetRoomid("-1"); // 房间号初始化
ShowFunGameInfo(); // 显示FunGame信息
- GetServerConnection(); // 开始连接服务器
+ GetFunGameConfig(); // 获取FunGame配置
+ if (Config.FunGame_isAutoConnect) GetServerConnection(); // 开始连接服务器
}
#endregion
@@ -76,77 +77,110 @@ namespace FunGame.Desktop.UI
switch (msg)
{
case Config.WebHelper_SetGreen:
- Usercfg.FunGame_isRetrying = false;
+ Config.FunGame_isRetrying = false;
WebHelper_Action = (main) =>
{
SetServerStatusLight((int)LightType.Green);
- SetButtonEnableIfLogon(true);
+ SetButtonEnableIfLogon(true, ClientState.Online);
};
if (InvokeRequired)
BeginInvoke(WebHelper_Action, this);
else
WebHelper_Action(this);
- Usercfg.FunGame_isConnected = true;
+ Config.FunGame_isConnected = true;
NOW_CONNECTEDRETRY = 0;
break;
case Config.WebHelper_SetGreenAndPing:
- Usercfg.FunGame_isRetrying = false;
+ Config.FunGame_isRetrying = false;
WebHelper_Action = (main) =>
{
- SetServerStatusLight((int)LightType.Green, GetServerPing(Config.SERVER_IPADRESS));
- SetButtonEnableIfLogon(true);
+ SetServerStatusLight((int)LightType.Green, ping: GetServerPing(Config.SERVER_IPADRESS));
+ SetButtonEnableIfLogon(true, ClientState.Online);
};
if (InvokeRequired)
BeginInvoke(WebHelper_Action, this);
else
WebHelper_Action(this);
- Usercfg.FunGame_isConnected = true;
+ Config.FunGame_isConnected = true;
NOW_CONNECTEDRETRY = 0;
break;
case Config.WebHelper_SetYellow:
- Usercfg.FunGame_isRetrying = false;
+ Config.FunGame_isRetrying = false;
WebHelper_Action = (main) =>
{
SetServerStatusLight((int)LightType.Yellow);
- SetButtonEnableIfLogon(false);
+ SetButtonEnableIfLogon(false, ClientState.WaitConnect);
};
if (InvokeRequired)
BeginInvoke(WebHelper_Action, this);
else
WebHelper_Action(this);
- Usercfg.FunGame_isConnected = true;
+ Config.FunGame_isConnected = true;
+ NOW_CONNECTEDRETRY = 0;
+ break;
+ case Config.WebHelper_WaitConnectAndSetYellow:
+ Config.FunGame_isRetrying = false;
+ WebHelper_Action = (main) =>
+ {
+ SetServerStatusLight((int)LightType.Yellow);
+ SetButtonEnableIfLogon(false, ClientState.WaitConnect);
+ };
+ if (InvokeRequired)
+ BeginInvoke(WebHelper_Action, this);
+ else
+ WebHelper_Action(this);
+ Config.FunGame_isConnected = true;
+ NOW_CONNECTEDRETRY = 0;
+ if (WebHelper != null && Config.FunGame_isAutoConnect)
+ {
+ // 自动连接服务器
+ GetServerConnection();
+ }
+ break;
+ case Config.WebHelper_WaitLoginAndSetYellow:
+ Config.FunGame_isRetrying = false;
+ WebHelper_Action = (main) =>
+ {
+ SetServerStatusLight((int)LightType.Yellow, true);
+ SetButtonEnableIfLogon(false, ClientState.WaitLogin);
+ };
+ if (InvokeRequired)
+ BeginInvoke(WebHelper_Action, this);
+ else
+ WebHelper_Action(this);
+ Config.FunGame_isConnected = true;
NOW_CONNECTEDRETRY = 0;
break;
case Config.WebHelper_SetRed:
WebHelper_Action = (main) =>
{
SetServerStatusLight((int)LightType.Red);
- SetButtonEnableIfLogon(false);
+ SetButtonEnableIfLogon(false, ClientState.WaitConnect);
};
if (InvokeRequired)
BeginInvoke(WebHelper_Action, this);
else
WebHelper_Action(this);
- Usercfg.FunGame_isConnected = false;
+ Config.FunGame_isConnected = false;
break;
case Config.WebHelper_Disconnected:
- Usercfg.FunGame_isRetrying = false;
- Usercfg.FunGame_isConnected = false;
+ Config.FunGame_isRetrying = false;
+ Config.FunGame_isConnected = false;
WebHelper_Action = (main) =>
{
SetServerStatusLight((int)LightType.Red);
- SetButtonEnableIfLogon(false);
+ SetButtonEnableIfLogon(false, ClientState.WaitConnect);
};
if (InvokeRequired)
BeginInvoke(WebHelper_Action, this);
else
WebHelper_Action(this);
- if (Usercfg.FunGame_isAutoRetry && NOW_CONNECTEDRETRY <= MAX_CONNECTEDRETRY)
+ if (Config.FunGame_isAutoRetry && NOW_CONNECTEDRETRY <= MAX_CONNECTEDRETRY)
{
Task.Run(() =>
{
Thread.Sleep(5000);
- if (Usercfg.FunGame_isAutoRetry) Connect(); // 再次判断是否开启自动重连
+ if (Config.FunGame_isAutoRetry) Connect(); // 再次判断是否开启自动重连
});
if (needTime)
throw new Exception(GetNowShortTime() + "\nERROR:连接服务器失败,5秒后自动尝试重连。");
@@ -159,19 +193,20 @@ namespace FunGame.Desktop.UI
else
throw new Exception("ERROR:无法连接至服务器,请检查你的网络连接。");
case Config.WebHelper_LogOut:
- Usercfg.FunGame_isRetrying = false;
- Usercfg.FunGame_isConnected = false;
+ Config.FunGame_isRetrying = false;
+ Config.FunGame_isConnected = false;
+ Config.FunGame_isAutoLogin = false;
WebHelper_Action = (main) =>
{
SetServerStatusLight((int)LightType.Red);
- SetButtonEnableIfLogon(false);
+ SetButtonEnableIfLogon(false, ClientState.WaitConnect);
LogoutAccount();
};
if (InvokeRequired)
BeginInvoke(WebHelper_Action, this);
else
WebHelper_Action(this);
- if (Usercfg.FunGame_isAutoRetry)
+ if (Config.FunGame_isAutoRetry)
{
NOW_CONNECTEDRETRY = -1;
Task.Run(() =>
@@ -194,6 +229,21 @@ namespace FunGame.Desktop.UI
SetLoginUser(objs);
}
return null;
+ case Config.WebHelper_SetNotice:
+ Action action = () =>
+ {
+ NoticeText.Text = Config.FunGame_Notice;
+ if (WebHelper != null && Config.FunGame_isAutoLogin)
+ {
+ // 自动登录
+ WebHelper.WebHelpMethod((int)WebHelperMethod.Login);
+ }
+ };
+ if (InvokeRequired)
+ BeginInvoke(action);
+ else
+ action();
+ return null;
default:
if (needTime)
WritelnGameInfo(webHelper, GetNowShortTime() + msg);
@@ -223,7 +273,7 @@ namespace FunGame.Desktop.UI
{
try
{
- string? ipaddress = (string?)Config.DefaultAssemblyHelper.GetFunGameCoreValue((int)InterfaceType.ClientConnectInterface, (int)InterfaceMethod.RemoteServerIP); // 获取服务器IP
+ string? ipaddress = (string?)Config.AssemblyHelper.GetFunGameCoreValue((int)InterfaceType.ClientConnectInterface, (int)InterfaceMethod.RemoteServerIP); // 获取服务器IP
if (ipaddress != null)
{
string[] s = ipaddress.Split(':');
@@ -261,7 +311,7 @@ namespace FunGame.Desktop.UI
}
Main_Action = (main) =>
{
- if (!Usercfg.FunGame_isConnected)
+ if (!Config.FunGame_isConnected)
{
NOW_CONNECTEDRETRY++;
if (NOW_CONNECTEDRETRY == 0)
@@ -284,7 +334,7 @@ namespace FunGame.Desktop.UI
WebHelper.WebHelpMethod((int)WebHelperMethod.CloseSocket);
WebHelper = null;
}
- Usercfg.FunGame_isRetrying = true;
+ Config.FunGame_isRetrying = true;
Application.DoEvents();
WebHelper = new WebHelper(main);
WebHelper.WebHelpMethod((int)WebHelperMethod.CreateSocket); // Invoke -> CreateSocket
@@ -319,18 +369,49 @@ namespace FunGame.Desktop.UI
});
}
+ ///
+ /// 获取FunGame配置文件设定
+ ///
+ private void GetFunGameConfig()
+ {
+ try
+ {
+ if (Config.INIHelper.ExistINIFile())
+ {
+ string isAutoConncet = Config.INIHelper.ReadINI("Config", "AutoConnect");
+ string isAutoLogin = Config.INIHelper.ReadINI("Config", "AutoLogin");
+ if (isAutoConncet != null && !isAutoConncet.Equals("") && (isAutoConncet.Equals("false") || isAutoConncet.Equals("true")))
+ Config.FunGame_isAutoConnect = Convert.ToBoolean(isAutoConncet);
+ else throw new Exception("ERROR: 读取配置文件出错,参数格式不正确");
+ if (isAutoLogin != null && !isAutoLogin.Equals("") && (isAutoLogin.Equals("false") || isAutoLogin.Equals("true")))
+ Config.FunGame_isAutoLogin = Convert.ToBoolean(isAutoLogin);
+ else throw new Exception("ERROR: 读取配置文件出错,参数格式不正确");
+ }
+ else
+ {
+ Config.INIHelper.InitClientConfigs();
+ WritelnGameInfo(">> 首次启动,已自动为你创建配置文件。");
+ GetFunGameConfig();
+ }
+ }
+ catch (Exception e)
+ {
+ WritelnGameInfo(GetNowTime() + e.Message != null ? e.Message + "\n" + e.StackTrace : "" + e.StackTrace);
+ }
+ }
+
///
/// 设置房间号和显示信息
///
///
private void SetRoomid(string roomid)
{
- Usercfg.FunGame_roomid = roomid;
+ Config.FunGame_Roomid = roomid;
if (!roomid.Equals("-1"))
{
WritelnGameInfo(GetNowShortTime() + " 加入房间");
- WritelnGameInfo("[ " + Usercfg.LoginUserName + " ] 已加入房间 -> [ " + Usercfg.FunGame_roomid + " ]");
- Room.Text = "[ 当前房间 ]\n" + Convert.ToString(Usercfg.FunGame_roomid);
+ WritelnGameInfo("[ " + Usercfg.LoginUserName + " ] 已加入房间 -> [ " + Config.FunGame_Roomid + " ]");
+ Room.Text = "[ 当前房间 ]\n" + Convert.ToString(Config.FunGame_Roomid);
}
else
Room.Text = "暂未进入房间";
@@ -343,7 +424,7 @@ namespace FunGame.Desktop.UI
private void SetLoginUser(object[]? objs = null)
{
if (InvokeRequired)
- BeginInvoke(LoginAccount, objs);
+ Invoke(LoginAccount, objs);
else
LoginAccount(objs);
}
@@ -416,7 +497,7 @@ namespace FunGame.Desktop.UI
// 显示:匹配、创建房间
// 隐藏:退出房间、房间设定
WritelnGameInfo(GetNowShortTime() + " 离开房间");
- WritelnGameInfo("[ " + Usercfg.LoginUserName + " ] 已离开房间 -> [ " + Usercfg.FunGame_roomid + " ]");
+ WritelnGameInfo("[ " + Usercfg.LoginUserName + " ] 已离开房间 -> [ " + Config.FunGame_Roomid + " ]");
SetRoomid("-1");
QuitRoom.Visible = false;
StartMatch.Visible = true;
@@ -440,17 +521,22 @@ namespace FunGame.Desktop.UI
///
/// 未登录和离线时,停用按钮
///
- private void SetButtonEnableIfLogon(bool isLogon)
+ private void SetButtonEnableIfLogon(bool isLogon, ClientState status)
{
- if (isLogon)
+ switch (status)
{
- PresetText.Items.Clear();
- PresetText.Items.AddRange(Config.PresetOnineItems);
- }
- else
- {
- PresetText.Items.Clear();
- PresetText.Items.AddRange(Config.PresetNoLoginItems);
+ case ClientState.Online:
+ PresetText.Items.Clear();
+ PresetText.Items.AddRange(Config.PresetOnineItems);
+ break;
+ case ClientState.WaitConnect:
+ PresetText.Items.Clear();
+ PresetText.Items.AddRange(Config.PresetNoConnectItems);
+ break;
+ case ClientState.WaitLogin:
+ PresetText.Items.Clear();
+ PresetText.Items.AddRange(Config.PresetNoLoginItems);
+ break;
}
this.PresetText.SelectedIndex = 0;
CheckMix.Enabled = isLogon;
@@ -476,7 +562,7 @@ namespace FunGame.Desktop.UI
{
if (CheckRoomIDExist(roomid))
{
- if (Usercfg.FunGame_roomid.Equals("-1"))
+ if (Config.FunGame_Roomid.Equals("-1"))
{
if (ShowMessage.YesNoMessage("已找到房间 -> [ " + roomid + " ]\n是否加入?", "已找到房间") == MessageResult.Yes)
{
@@ -504,7 +590,7 @@ namespace FunGame.Desktop.UI
{
if (CheckRoomIDExist(roomid))
{
- if (Usercfg.FunGame_roomid.Equals("-1"))
+ if (Config.FunGame_Roomid.Equals("-1"))
{
if (ShowMessage.YesNoMessage("已找到房间 -> [ " + roomid + " ]\n是否加入?", "已找到房间") == MessageResult.Yes)
{
@@ -535,7 +621,7 @@ namespace FunGame.Desktop.UI
{
case (int)StartMatch_State.Matching:
// 开始匹配
- Usercfg.FunGame_isMatching = true;
+ Config.FunGame_isMatching = true;
int loop = 0;
string roomid = Convert.ToString(new Random().Next(1, 10000));
// 匹配中 匹配成功返回房间号
@@ -543,7 +629,7 @@ namespace FunGame.Desktop.UI
{
// 创建新线程,防止主界面阻塞
Thread.Sleep(3000);
- while (loop < 10000 && Usercfg.FunGame_isMatching)
+ while (loop < 10000 && Config.FunGame_isMatching)
{
loop++;
if (loop == Convert.ToInt32(roomid))
@@ -567,7 +653,7 @@ namespace FunGame.Desktop.UI
});
break;
case (int)StartMatch_State.Success:
- Usercfg.FunGame_isMatching = false;
+ Config.FunGame_isMatching = false;
// 匹配成功返回房间号
roomid = "-1";
if (objs != null) roomid = (string)objs[0];
@@ -613,7 +699,7 @@ namespace FunGame.Desktop.UI
case (int)StartMatch_State.Cancel:
WritelnGameInfo(GetNowShortTime() + " 终止匹配");
WritelnGameInfo("[ " + Usercfg.LoginUserName + " ] 已终止匹配。");
- Usercfg.FunGame_isMatching = false;
+ Config.FunGame_isMatching = false;
StartMatch_Action = (i, objs) =>
{
StartMatch_Method(i, objs);
@@ -647,10 +733,7 @@ namespace FunGame.Desktop.UI
Login.Visible = false;
Logout.Visible = true;
SetServerStatusLight((int)LightType.Green);
- Task.Run(() =>
- { // DEBUG
- ShowMessage.TipMessage("欢迎回来, " + Usercfg.LoginUserName + "!", "登录成功", 5);
- });
+ ShowMessage.TipMessage("欢迎回来, " + Usercfg.LoginUserName + "!", "登录成功", 5);
}
///
@@ -734,7 +817,7 @@ namespace FunGame.Desktop.UI
/// 可传多个参数
private void CreateRoom_Method(int i, object[]? objs = null)
{
- if (!Usercfg.FunGame_roomid.Equals("-1"))
+ if (!Config.FunGame_Roomid.Equals("-1"))
{
ShowMessage.WarningMessage("已在房间中,无法创建房间。");
return;
@@ -777,7 +860,7 @@ namespace FunGame.Desktop.UI
///
///
///
- private void SetServerStatusLight(int light, int ping = 0)
+ private void SetServerStatusLight(int light, bool waitlogin = false, int ping = 0)
{
switch(light)
{
@@ -786,7 +869,7 @@ namespace FunGame.Desktop.UI
this.Light.Image = Properties.Resources.green;
break;
case (int)LightType.Yellow:
- Connection.Text = "等待登录账号";
+ Connection.Text = waitlogin ? "等待登录账号" : "等待连接服务器";
this.Light.Image = Properties.Resources.yellow;
break;
case (int)LightType.Red:
@@ -1010,7 +1093,7 @@ namespace FunGame.Desktop.UI
///
private void Login_Click(object sender, EventArgs e)
{
- if (WebHelper != null)
+ if (WebHelper != null && Config.FunGame_isConnected)
WebHelper.WebHelpMethod((int)WebHelperMethod.Login);
else
ShowMessage.WarningMessage("请先连接服务器!");
@@ -1033,7 +1116,7 @@ namespace FunGame.Desktop.UI
///
private void RoomList_MouseDoubleClick(object sender, MouseEventArgs e)
{
-#pragma warning disable CS8600, CS8604
+ #pragma warning disable CS8600, CS8604
if (RoomList.SelectedItem != null)
JoinRoom(true, RoomList.SelectedItem.ToString());
}
@@ -1270,14 +1353,14 @@ namespace FunGame.Desktop.UI
break;
case Config.FunGame_AutoRetryOn:
WritelnGameInfo(">> 自动重连开启");
- Usercfg.FunGame_isAutoRetry = true;
+ Config.FunGame_isAutoRetry = true;
break;
case Config.FunGame_AutoRetryOff:
WritelnGameInfo(">> 自动重连关闭");
- Usercfg.FunGame_isAutoRetry = false;
+ Config.FunGame_isAutoRetry = false;
break;
case Config.FunGame_Retry:
- if (!Usercfg.FunGame_isRetrying)
+ if (!Config.FunGame_isRetrying)
{
NOW_CONNECTEDRETRY = -1;
Connect();
@@ -1285,6 +1368,19 @@ namespace FunGame.Desktop.UI
else
WritelnGameInfo(">> 你不能在连接服务器的同时重试连接!");
break;
+ case Config.FunGame_Connect:
+ if (!Config.FunGame_isConnected)
+ {
+ NOW_CONNECTEDRETRY = -1;
+ GetServerConnection();
+ }
+ break;
+ case Config.FunGame_Disconnect:
+ if (Config.FunGame_isConnected)
+ {
+ WritelnGameInfo(">> 实验性功能。");
+ }
+ break;
}
}
diff --git a/FunGame.Desktop/Utils/WebHelper.cs b/FunGame.Desktop/Utils/WebHelper.cs
index 4f90264..0af1d02 100644
--- a/FunGame.Desktop/Utils/WebHelper.cs
+++ b/FunGame.Desktop/Utils/WebHelper.cs
@@ -81,7 +81,7 @@ namespace FunGame.Desktop.Utils
client.Connect(server);
if (IsConnected())
{
- Main.GetMessage(this, Config.WebHelper_SetYellow);
+ Main.GetMessage(this, Config.WebHelper_WaitLoginAndSetYellow);
break;
}
}
@@ -95,7 +95,10 @@ namespace FunGame.Desktop.Utils
else
objs = new object[] { main, socket };
if (Send((int)SocketMessageType.GetNotice, objs)) // 接触服务器并获取公告
+ {
main.GetMessage(this, " >> 连接服务器成功,请登录账号以体验FunGame。", true);
+ main.GetMessage(this, Config.WebHelper_SetNotice);
+ }
};
Task t = Task.Factory.StartNew(() =>
{
@@ -158,7 +161,9 @@ namespace FunGame.Desktop.Utils
switch (type)
{
case (int)SocketMessageType.GetNotice:
- main.GetMessage(this, read, true);
+ string[] reads = read.Split(';');
+ Config.FunGame_Notice = reads[1];
+ main.GetMessage(this, " >> 已连接至服务器: " + reads[0] + "。\n\n********** 服务器公告 **********\n\n" + Config.FunGame_Notice + "\n\n", true);
return true;
case (int)SocketMessageType.Login:
break;
@@ -242,7 +247,7 @@ namespace FunGame.Desktop.Utils
}
else
{
- Usercfg.FunGame_isAutoRetry = false;
+ Config.FunGame_isAutoRetry = false;
throw new Exception("ERROR: 请登录账号。");
}
break;