Procházet zdrojové kódy

登录进入游戏

guodong před 3 roky
rodič
revize
8b5625a9f2

+ 1 - 1
GameClient/Assets/Game/CSShare

@@ -1 +1 @@
-Subproject commit 1a679ac3fea03b8a645925382d0369f4f4c3fe01
+Subproject commit 18dfa1b2fa78c932e1451574029bbcede1f5eb90

+ 84 - 1
GameClient/Assets/Game/HotUpdate/Controller/LoginController.cs

@@ -50,7 +50,8 @@ namespace GFGGame
                 GameController.CheckSpecialAccount(account);
                 LocalCache.SetBool(GameConst.LAST_LOGIN_IS_VISITOR_KEY, GameGlobal.isVisitor);
                 PlayerPrefs.Save();
-                GameProxy.ReqRoleInfo(GameGlobal.userId);
+                await GetServerInfos();
+                await GetRoles();
             }
             else
             {
@@ -76,5 +77,87 @@ namespace GFGGame
             }
         }
 
+        public static async ETTask GetServerInfos()
+        {
+            int errorCode = await LoginHelper.GetServerInfos(GameGlobal.zoneScene);
+            if(errorCode != ErrorCode.ERR_Success)
+            {
+                ErrorCodeController.Handler(errorCode);
+                await ETTask.Create();
+                return;
+            }
+            var serverInfosComponent = GameGlobal.zoneScene.GetComponent<ServerInfosComponent>();
+            if (serverInfosComponent.ServerInfoList.Count <= 0)
+            {
+                Alert.Show("服务器列表为空:\n请检查网络和服务器状态")
+                    .SetRightButton(true, "知道啦", (object data) =>
+                    {
+                        Application.Quit();
+                    });
+                await ETTask.Create();
+                return;
+            }
+            var serverInfo = serverInfosComponent.ServerInfoList[0];
+            serverInfosComponent.CurrentServerId = int.Parse(serverInfo.Id.ToString());
+        }
+
+        public static async ETTask GetRoles()
+        {
+            int errorCode = await LoginHelper.GetRoles(GameGlobal.zoneScene);
+            if(errorCode != ErrorCode.ERR_Success)
+            {
+                ErrorCodeController.Handler(errorCode);
+                await ETTask.Create();
+            }
+            var roleInfosComponent = GameGlobal.zoneScene.GetComponent<RoleInfosComponent>();
+            if (roleInfosComponent.RoleInfos != null && roleInfosComponent.RoleInfos.Count > 0)
+            {
+                var roleInfo = roleInfosComponent.RoleInfos[0];
+                roleInfosComponent.CurrentRoleId = roleInfo.Id;
+                await ReqEnterGame();
+            }
+            else
+            {
+                GameController.ShowCreateRole();
+            }
+        }
+
+        public static async ETTask ReqCreateRole(string roleName)
+        {
+            int errorCode = await ET.LoginHelper.CreateRole(GameGlobal.zoneScene, roleName);
+            if (errorCode != ErrorCode.ERR_Success)
+            {
+                ErrorCodeController.Handler(errorCode);
+                return;
+            }
+
+            var roleInfosComponent = GameGlobal.zoneScene.GetComponent<RoleInfosComponent>();
+            if (roleInfosComponent.RoleInfos != null && roleInfosComponent.RoleInfos.Count > 0)
+            {
+                var roleInfo = roleInfosComponent.RoleInfos[0];
+                roleInfosComponent.CurrentRoleId = roleInfo.Id;
+                await ReqEnterGame();
+            }
+
+            ViewManager.Hide(ViewName.CREATE_ROLE_VIEW);
+        }
+
+        public static async ETTask ReqEnterGame()
+        {
+            int errorCode = await LoginHelper.GetRealmKey(GameGlobal.zoneScene);
+            if(errorCode != ErrorCode.ERR_Success)
+            {
+                ErrorCodeController.Handler(errorCode);
+                return;
+            }
+            errorCode = await LoginHelper.EnterGame(GameGlobal.zoneScene);
+            if (errorCode != ErrorCode.ERR_Success)
+            {
+                ErrorCodeController.Handler(errorCode);
+                return;
+            }
+
+            ViewManager.Hide<LoginView>();
+        }
     }
 }

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Views/CreateRole/CreateRoleView.cs

@@ -44,7 +44,7 @@ namespace GFGGame
             if (_ui.m_inputName.text.Length > 0)
             {
                 string roleName = _ui.m_inputName.text;
-                GameProxy.ReqCreateRole(GameGlobal.userId, roleName);
+                LoginController.ReqCreateRole(roleName).Coroutine();
             }
         }