private static void PLAYER_ENTER_REPLY(byte[] bytes) { PlayerEnterReply input = PlayerEnterReply.Parser.ParseFrom(bytes); if (input.Ret) { if (ClientManager.Instance != null) { ClientManager.Instance.StateMachine.TriggerTransition(ConnectionFSMStateEnum.StateEnum.CONNECTED_ROOM); } string msg = "玩家成功加入战场服务器!"; UIManager.Instance.SystemTips(msg, PanelSystemTips.MessageType.Success); GameRoomManager.Instance.Log($"MSG: ROOM PLAYER_ENTER_REPLY OK - " + msg); //载入地图(调试Only) if (ClientManager.Instance == null) { GameRoomManager.Instance.LoadMap(); } } else { string msg = "玩家加入战场服务器失败!"; // 不能使用SystemTips,因为会切换场景(scene),切换场景的时候,SystemTips无法显示 //UIManager.Instance.SystemTips(msg, PanelSystemTips.MessageType.Error); UIManager.Instance.MessageBox("错误", msg, (int)PanelMessageBox.BUTTON.OK, OnClickPlayerEnterFailed); GameRoomManager.Instance.Log($"MSG: ROOM PLAYER_ENTER_REPLY Error - " + msg); } }
static void PLAYER_ENTER_REPLY(byte[] bytes) { PlayerEnterReply input = PlayerEnterReply.Parser.ParseFrom(bytes); if (input.Ret) { string msg = "玩家成功加入大厅服务器!"; ClientManager.Instance.LobbyManager.Log($"MSG: LOBBY PLAYER_ENTER_REPLY OK - " + msg); ClientManager.Instance.StateMachine.TriggerTransition(ConnectionFSMStateEnum.StateEnum.CONNECTED); } else { string msg = "玩家进入大厅失败!!!"; // 不能使用SystemTips,因为会切换场景(scene),切换场景的时候,SystemTips无法显示 //UIManager.Instance.SystemTips(msg, PanelSystemTips.MessageType.Error); UIManager.Instance.MessageBox("错误", msg, (int)PanelMessageBox.BUTTON.OK, OnClickPlayerEnterFailed); ClientManager.Instance.LobbyManager.Log("MSG: LOBBY PLAYER_ENTER_REPLY Error - " + msg); } }
private static void PLAYER_ENTER(byte[] bytes) { PlayerEnter input = PlayerEnter.Parser.ParseFrom(bytes); PlayerInfo pi = new PlayerInfo(_args, input); //检测是否重复登录,如果发现曾经有人登录,则将前面的人踢掉 var alreadyLoggedIn = ServerRoomManager.Instance.FindPlayerArgs(input.TokenId); if (alreadyLoggedIn != null) { var oldPlayer = ServerRoomManager.Instance.GetPlayer(alreadyLoggedIn); if (oldPlayer != null) { string roomName = ""; RoomLogic roomLogic = ServerRoomManager.Instance.GetRoomLogic(oldPlayer.RoomId); if (roomLogic != null) { roomName = roomLogic.RoomName; } LeaveRoomReply output = new LeaveRoomReply() { RoomName = roomName, Ret = true, }; ServerRoomManager.Instance.SendMsg(alreadyLoggedIn, ROOM_REPLY.LeaveRoomReply, output.ToByteArray()); ServerRoomManager.Instance.RemovePlayer(alreadyLoggedIn, true); string msg = "Kick myself that priviously logged in."; // "踢掉之前登录的本用户."; ServerRoomManager.Instance.Log($"MSG: PLAYER_ENTER WARNING - " + msg + $" - {oldPlayer.Enter.Account}"); } } ServerRoomManager.Instance.AddPlayer(_args, pi); { PlayerEnterReply output = new PlayerEnterReply() { Ret = true, }; ServerRoomManager.Instance.SendMsg(_args, ROOM_REPLY.PlayerEnterReply, output.ToByteArray()); } }