//접속 종료 처리 public bool RemoveUserData(Socket client) { string id = ""; try { //로그인 했을 때 if (loginUser.ContainsKey(client)) { id = loginUser[client]; //유저 상태 추가 if (userState.ContainsKey(id)) { //캐릭터를 선택했을 때 if (userState[id].characterId >= 0) { //방에 입장했을 때 if (userState[id].state >= 0) { int roomNum = userState[id].state; //게임에 입장했을 때 if (roomManager.Room[roomNum].State == (int)RoomState.inGame) { } roomManager.ExitRoom(roomNum, client); //방에서 퇴장 시킴 userState[id].state = -1; } //캐릭터 선택 안 한 상태 userState[id].characterId = -1; } // 유저 상태 제거 userState.Remove(id); } //유저 데이터 저장 후 리스트에서 삭제 database.FileSave(id + ".data", database.GetUserData(id)); database.UserData.Remove(id); //로그아웃 처리 loginUser.Remove(client); } ConnectionChecker.RemoveClient(client); return(true); } catch (Exception e) { Console.WriteLine("DataHandler::RemoveUserData.에러 " + e.Message); return(false); } }