コード例 #1
0
        public static void addUser(ClientInfo clientInfo, C2S_EnterGameMode2 c2s)
        {
            if (!checkIsExist(c2s.UserId))
            {
                waitUserList.Add(new WaitMatchUserInfo(clientInfo, c2s.UserId, c2s.HeroId));

                // 该房间需要的人数
                int needUserCount = 2;
                if (waitUserList.Count >= needUserCount)
                {
                    // 新建房间
                    List <WaitMatchUserInfo> userList = new List <WaitMatchUserInfo>();
                    for (int i = 0; i < needUserCount; i++)
                    {
                        userList.Add(waitUserList[i]);
                    }
                    RoomLogic roomLogic = new RoomLogic(userList);

                    S2C_CanEnterGameMode2 s2c = new S2C_CanEnterGameMode2();
                    s2c.Tag  = CSParam.NetTag.CanEnterGameMode2.ToString();
                    s2c.Code = (int)CSParam.CodeType.Ok;

                    // 所有玩家id
                    {
                        List <int> allUserId = new List <int>();
                        for (int i = 0; i < needUserCount; i++)
                        {
                            allUserId.Add(waitUserList[i].userId);
                        }
                        s2c.allUserId = allUserId;
                    }

                    // 所有玩家使用的角色id
                    {
                        List <int> allHeroId = new List <int>();
                        for (int i = 0; i < needUserCount; i++)
                        {
                            allHeroId.Add(waitUserList[i].heroId);
                        }
                        s2c.allHeroId = allHeroId;
                    }

                    for (int i = 0; i < needUserCount; i++)
                    {
                        Socket_S.getInstance().Send(waitUserList[i].clientInfo, s2c);
                    }

                    // 从等待队列移除
                    for (int i = 0; i < needUserCount; i++)
                    {
                        waitUserList.RemoveAt(0);
                    }
                }
            }
        }
コード例 #2
0
 public static void addRoom(RoomLogic roomLogic)
 {
     list_room.Add(roomLogic);
 }