//Server - 방 유저 정보 수신 public void RoomData(DataPacket packet) { Debug.Log("방 유저 정보 수신"); RoomDataPacket roomDataPacket = new RoomDataPacket(packet.msg); RoomData roomData = roomDataPacket.GetData(); UIManager.Instance.RoomUIManager.SetRoom(roomData); }
//Server - 방 유저 정보 수신 public void RoomData(DataPacket packet) { Debug.Log("방 유저 정보 수신"); RoomDataPacket roomDataPacket = new RoomDataPacket(packet.msg); RoomData roomData = roomDataPacket.GetData(); for (int i = 0; i < WaitingUIManager.maxPlayerNum; i++) { Debug.Log(roomData.RoomUserData[i].UserName); Debug.Log(roomData.RoomUserData[i].UserGender); Debug.Log(roomData.RoomUserData[i].UserClass); Debug.Log(roomData.RoomUserData[i].UserLevel); } UIManager.Instance.RoomUIManager.SetUserList(roomData); }
//방 유저 정보 요청 public void RequestRoomUserData(DataPacket packet) { Console.WriteLine(packet.client.RemoteEndPoint.ToString() + "방 유저 정보 요청"); string id = loginUser[packet.client]; RoomData roomData = new RoomData(roomManager.Room[userState[id].state], userState[id].state); RoomDataPacket roomDataPacket = new RoomDataPacket(roomData); roomDataPacket.SetPacketId((int)ServerPacketId.RoomData); Console.WriteLine(roomData.DungeonName); byte[] msg = CreatePacket(roomDataPacket); packet = new DataPacket(msg, packet.client); lock (sendLock) { sendMsgs.Enqueue(packet); } }
public static string dataPacket(ConnectedUser user) { int[] RoomIDs = MySQL.runReadColumn("SELECT id FROM rooms WHERE owner='" + user._UserID + "'", 0, null); RoomDataPacket[] ownRooms = new RoomDataPacket[RoomIDs.Length]; for (int i = 0; i < RoomIDs.Length; i++) { string[] roomData = MySQL.runReadRow("SELECT name, descr, max, safe FROM rooms WHERE id = '" + RoomIDs[i] + "'"); RoomDataPacket getr = new RoomDataPacket(); getr.I = RoomIDs[i]; getr.N = roomData[0]; getr.D = roomData[1]; getr.O = user._Username; if (RoomManager.containsRoom(RoomIDs[i])) { getr.U = RoomManager.getRoom(RoomIDs[i]).countUsers(); } else { getr.U = 0; } getr.M = int.Parse(roomData[2]); getr.T = "private"; getr.S = int.Parse(roomData[3]); getr.F = 0; //FAVORIET? ownRooms[i] = getr; } NavigatorPacket AllRooms = new NavigatorPacket(); AllRooms.P = publicRooms; AllRooms.R = guestRooms; AllRooms.O = ownRooms; string AllRoomsString = JsonConvert.SerializeObject(AllRooms); return(AllRoomsString); }
public static void updateNavi() { int[] PublicIDs = MySQL.runReadColumn("SELECT id FROM rooms WHERE type='public'", 20, null); publicRooms = new PublicDataPacket[PublicIDs.Length]; for (int i = 0; i < PublicIDs.Length; i++) { string[] roomData = MySQL.runReadRow("SELECT name, descr, max FROM rooms WHERE id = '" + PublicIDs[i] + "'"); PublicDataPacket getr = new PublicDataPacket(); getr.I = PublicIDs[i]; getr.N = roomData[0]; getr.D = roomData[1]; if (RoomManager.containsRoom(PublicIDs[i])) { getr.U = RoomManager.getRoom(PublicIDs[i]).countUsers(); } else { getr.U = 0; } getr.M = int.Parse(roomData[2]); getr.T = "public"; publicRooms[i] = getr; } List <int> roomIDs = new List <int>(); int[] rooms = new int[RoomManager._Rooms.Count]; RoomManager._Rooms.Keys.CopyTo(rooms, 0); int[] users = new int[RoomManager._Rooms.Count]; int count = 0; foreach (PrivateRoom room in RoomManager._Rooms.Values) { users[count++] = room.countUsers(); } Array.Sort(users, rooms); Array.Reverse(rooms); int maxActiveRooms = 10; foreach (int roomID in rooms) { if (maxActiveRooms-- > 0) { roomIDs.Add(roomID); } } int maxPopularRooms = 10; int[] popularIDs = MySQL.runReadColumn("SELECT * FROM `rooms` WHERE `type`='private' AND safe='1' ORDER BY score DESC", maxPopularRooms, null); for (int i = 0; i < popularIDs.Length; i++) { if (!roomIDs.Contains(popularIDs[i])) { roomIDs.Add(popularIDs[i]); } } int[] RoomIDs = roomIDs.ToArray(); guestRooms = new RoomDataPacket[RoomIDs.Length]; for (int i = 0; i < RoomIDs.Length; i++) { string[] roomData = MySQL.runReadRow("SELECT name, descr, owner, max, safe FROM rooms WHERE id = '" + RoomIDs[i] + "'"); RoomDataPacket getr = new RoomDataPacket(); getr.I = RoomIDs[i]; getr.N = roomData[0]; getr.D = roomData[1]; getr.O = getUserName(int.Parse(roomData[2])); if (RoomManager.containsRoom(RoomIDs[i])) { getr.U = RoomManager.getRoom(RoomIDs[i]).countUsers(); } else { getr.U = 0; } getr.M = int.Parse(roomData[3]); getr.T = "private"; getr.S = int.Parse(roomData[4]); getr.F = 0; //FAVORIET? guestRooms[i] = getr; } }