示例#1
0
    //Server - 방 유저 정보 수신
    public void RoomData(DataPacket packet)
    {
        Debug.Log("방 유저 정보 수신");
        RoomDataPacket roomDataPacket = new RoomDataPacket(packet.msg);
        RoomData       roomData       = roomDataPacket.GetData();

        UIManager.Instance.RoomUIManager.SetRoom(roomData);
    }
示例#2
0
    //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);
        }
    }
示例#4
0
        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);
        }
示例#5
0
        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;
            }
        }