public int AddPlayer(Socket newPlayer, HeroData newData)
    {
        int index = FindEmptySlot();

        if (index < 0)
        {
            Console.WriteLine("최대 인원수를 초과하였습니다.");
            return -1;
        }

        roomUserData[index] = new RoomUserData(newData.Name, newData.Gender, newData.HClass, newData.LevelData.Level);
        socket[index] = newPlayer;
        playerNum++;

        if (playerNum < RoomManager.maxPlayerNum)
        {
            state = (int)RoomState.wait;
        }
        else if (playerNum == RoomManager.maxPlayerNum)
        {
            state = (int)RoomState.Full;
        }

        Console.WriteLine(index + "번 슬롯에 유저 입장");
        Console.WriteLine("유저 수 : " + playerNum);

        return index;
    }
    public RoomData(string[] newUserName, byte[] newUserGender, byte[] newUserClass, byte[] newUserLevel)
    {
        roomUserData = new RoomUserData[WaitingUIManager.maxPlayerNum];

        for (int i = 0; i < WaitingUIManager.maxPlayerNum; i++)
        {
            roomUserData[i] = new RoomUserData(newUserName[i], newUserGender[i], newUserClass[i], newUserLevel[i]);
        }
    }
    public RoomData()
    {
        roomUserData = new RoomUserData[WaitingUIManager.maxPlayerNum];

        for (int i = 0; i < WaitingUIManager.maxPlayerNum; i++)
        {
            roomUserData[i] = new RoomUserData();
        }
    }
    public void OnReceived(UserEnteredRoomMessage userEnteredRoomMessage)
    {
        UInt8 userIndex = userEnteredRoomMessage.UserIndex;

        users[userIndex]              = new RoomUserData();
        users[userIndex].username     = userEnteredRoomMessage.Username;
        users[userIndex].selectedTeam = null;

        UpdateSlotTexts();
    }
        public bool Deserialize(ref RoomListData element)
        {
            if (GetDataSize() == 0)
            {
                // 데이터가 설정되지 않았다.
                return(false);
            }

            bool ret = true;

            byte   roomNameLength = 0;
            string roomName;
            byte   dungeonId      = 0;
            byte   dungeonLevel   = 0;
            byte   playerNum      = 0;
            byte   state          = 0;
            byte   userNameLength = 0;
            string userName;
            byte   userGender = 0;
            byte   userClass  = 0;
            byte   userLevel  = 0;

            Room[]         rooms;
            RoomUserData[] roomUserData;

            rooms        = new Room[WaitingUIManager.maxRoomNum];
            roomUserData = new RoomUserData[WaitingUIManager.maxPlayerNum];

            for (int roomIndex = 0; roomIndex < WaitingUIManager.maxRoomNum; roomIndex++)
            {
                ret &= Deserialize(ref roomNameLength);
                ret &= Deserialize(out roomName, roomNameLength);
                ret &= Deserialize(ref dungeonId);
                ret &= Deserialize(ref dungeonLevel);
                ret &= Deserialize(ref playerNum);
                ret &= Deserialize(ref state);

                for (int userIndex = 0; userIndex < WaitingUIManager.maxPlayerNum; userIndex++)
                {
                    ret &= Deserialize(ref userNameLength);
                    ret &= Deserialize(out userName, userNameLength);
                    ret &= Deserialize(ref userGender);
                    ret &= Deserialize(ref userClass);
                    ret &= Deserialize(ref userLevel);

                    roomUserData[userIndex] = new RoomUserData(userName, userGender, userClass, userLevel);
                }

                rooms[roomIndex] = new Room(roomName, dungeonId, dungeonLevel, roomUserData, playerNum, state);
            }

            element = new RoomListData(rooms);

            return(ret);
        }
Example #6
0
    public Room(string newName, int newDungeonId, int newDungeonLevel)
    {
        roomName     = newName;
        dungeonId    = newDungeonId;
        dungeonLevel = newDungeonLevel;
        playerNum    = 0;
        roomUserData = new RoomUserData[WaitingUIManager.maxPlayerNum];

        for (int i = 0; i < WaitingUIManager.maxPlayerNum; i++)
        {
            roomUserData[i] = new RoomUserData();
        }
    }
Example #7
0
    public Room()
    {
        roomName     = "";
        playerNum    = 0;
        dungeonId    = 0;
        dungeonLevel = 0;
        roomUserData = new RoomUserData[WaitingUIManager.maxPlayerNum];

        for (int i = 0; i < WaitingUIManager.maxPlayerNum; i++)
        {
            roomUserData[i] = new RoomUserData();
        }
    }
Example #8
0
    public Room(string newRoomName, int newDungeonId, int newDungeonLevel, RoomUserData[] newRoomUserData, int newPlayerNum)
    {
        roomName     = newRoomName;
        dungeonName  = "";
        dungeonId    = newDungeonId;
        dungeonLevel = newDungeonLevel;
        roomUserData = new RoomUserData[newRoomUserData.Length];
        playerNum    = newPlayerNum;

        for (int i = 0; i < newRoomUserData.Length; i++)
        {
            roomUserData[i] = new RoomUserData(newRoomUserData[i].UserName, newRoomUserData[i].UserGender, newRoomUserData[i].UserClass, newRoomUserData[i].UserLevel);
        }
    }
Example #9
0
    public RoomData()
    {
        roomName     = "";
        roomNum      = 0;
        dungeonName  = "";
        dungeonId    = 0;
        dungeonLevel = 0;
        roomUserData = new RoomUserData[RoomManager.maxPlayerNum];

        for (int i = 0; i < RoomManager.maxPlayerNum; i++)
        {
            roomUserData[i] = new RoomUserData();
        }
    }
    public Room(string newRoomName, string newDungeonName, int newDungeonId, int newDungeonLevel)
    {
        roomName = newRoomName;
        dungeonName = newDungeonName;
        dungeonId = newDungeonId;
        dungeonLevel = newDungeonLevel;
        playerNum = 0;
        roomUserData = new RoomUserData[RoomManager.maxPlayerNum];
        socket = new Socket[RoomManager.maxPlayerNum];
        ready = new bool[RoomManager.maxPlayerNum];

        for (int i = 0; i < RoomManager.maxPlayerNum; i++)
        {
            roomUserData[i] = new RoomUserData();
        }
    }
    public void OnReceived(RoomCreatedMessage roomCreatedMessage)
    {
        userIndex = 0;
        roomToken = roomCreatedMessage.RoomToken;

        users                 = new RoomUserData[2 * roomCreatedMessage.TeamSize];
        users[0]              = new RoomUserData();
        users[0].username     = username;
        users[0].selectedTeam = null;

        roomTokenText.text = Convert.ToString(roomToken);

        copyToClipboardButton.gameObject.SetActive(true);

        UpdateSlotTexts();
    }
Example #12
0
        public bool Deserialize(ref RoomData element)
        {
            if (GetDataSize() == 0)
            {
                // 데이터가 설정되지 않았다.
                return(false);
            }

            bool   ret            = true;
            byte   roomNameLength = 0;
            string roomName;
            byte   roomNum           = 0;
            byte   dungeonNameLength = 0;
            string dungeonName;
            byte   dungeonId    = 0;
            byte   dungeonLevel = 0;

            byte[]         userNameLength = new byte[WaitingUIManager.maxPlayerNum];
            string[]       userName       = new string[WaitingUIManager.maxPlayerNum];
            byte[]         userGender     = new byte[WaitingUIManager.maxPlayerNum];
            byte[]         userClass      = new byte[WaitingUIManager.maxPlayerNum];
            byte[]         userLevel      = new byte[WaitingUIManager.maxPlayerNum];
            RoomUserData[] roomUserData   = new RoomUserData[WaitingUIManager.maxPlayerNum];

            ret &= Deserialize(ref roomNameLength);
            ret &= Deserialize(out roomName, roomNameLength);
            ret &= Deserialize(ref roomNum);
            ret &= Deserialize(ref dungeonNameLength);
            ret &= Deserialize(out dungeonName, dungeonNameLength);
            ret &= Deserialize(ref dungeonId);
            ret &= Deserialize(ref dungeonLevel);

            for (int i = 0; i < WaitingUIManager.maxPlayerNum; i++)
            {
                ret            &= Deserialize(ref userNameLength[i]);
                ret            &= Deserialize(out userName[i], userNameLength[i]);
                ret            &= Deserialize(ref userGender[i]);
                ret            &= Deserialize(ref userClass[i]);
                ret            &= Deserialize(ref userLevel[i]);
                roomUserData[i] = new RoomUserData(userName[i], userGender[i], userClass[i], userLevel[i]);
            }

            element = new RoomData(roomName, roomNum, dungeonName, dungeonId, dungeonLevel, roomUserData);

            return(ret);
        }
    public Room()
    {
        roomName = "";
        dungeonName = "";
        playerNum = 0;
        dungeonId = 0;
        dungeonLevel = 0;
        state = (int)RoomState.empty;
        roomUserData = new RoomUserData[RoomManager.maxPlayerNum];
        socket = new Socket[RoomManager.maxPlayerNum];        
        ready = new bool[RoomManager.maxPlayerNum];

        for (int i = 0; i < RoomManager.maxPlayerNum; i++)
        {
            roomUserData[i] = new RoomUserData();
        }
    }
    public bool DeletePlayer(Socket player)
    {
        int index = FindPlayerWithSocket(player);

        if(index == -1)
        {
            return false;
        }

        roomUserData[index] = new RoomUserData();
        socket[index] = null;
        playerNum--;

        if(playerNum == 0)
        {
            state = (int)RoomState.empty;
        }

        return true;
    }
 public void SwapPlayer(int origSlot, int DestiSlot)
 {
     RoomUserData tempData = roomUserData[origSlot];
     roomUserData[origSlot] = roomUserData[DestiSlot];
     roomUserData[DestiSlot] = tempData;
 }