AddUsers() private méthode

private AddUsers ( int camp ) : void
camp int
Résultat void
Exemple #1
0
        internal int CreateAutoRoom(ulong[] users, int type)
        {
            RoomInfo room = NewRoomInfo();

            room.RoomId         = ++m_CurRoomId;
            room.SceneType      = type;
            room.RoomServerName = GetIdlestRoomServer();
            room.TotalCount     = users.Length;
            if (!room.IsPvp)
            {
                room.AddUsers((int)CampIdEnum.Blue, users);
            }
            else
            {
                int     ct    = users.Length / 2;
                ulong[] blues = new ulong[users.Length - ct];
                ulong[] reds  = new ulong[ct];
                Array.Copy(users, 0, blues, 0, users.Length - ct);
                Array.Copy(users, ct, reds, 0, ct);
                room.AddUsers((int)CampIdEnum.Blue, blues);
                room.AddUsers((int)CampIdEnum.Red, reds);
            }

            if (!m_Rooms.ContainsKey(room.RoomId))
            {
                m_Rooms.Add(room.RoomId, room);
            }
            else
            {
                m_Rooms[room.RoomId] = room;
            }
            room.Creator = 0;
            return(room.RoomId);
        }
Exemple #2
0
        private void RequestEnterSceneRoom(UserInfo info, int roomId, int hp, int mp, float x, float y)
        {
            RoomInfo room = m_LobbyInfo.GetRoomByID(roomId);

            if (null != room)
            {
                int campId = (int)CampIdEnum.Blue;

                room.AddUsers(campId, info.Guid);
                Msg_LR_EnterScene enterSceneMsg = new Msg_LR_EnterScene();
                enterSceneMsg.UserGuid = info.Guid;
                enterSceneMsg.RoomId   = roomId;

                Msg_LR_RoomUserInfo ruiBuilder = info.RoomUserInfo;
                ruiBuilder.Key  = info.Key;
                ruiBuilder.Camp = info.CampId;
                if (hp > 0 && mp > 0)
                {
                    enterSceneMsg.HP = hp;
                    enterSceneMsg.MP = mp;
                }
                if (x > 0 && y > 0)
                {
                    ruiBuilder.EnterX = x;
                    ruiBuilder.EnterY = y;
                }
                enterSceneMsg.UserInfo = ruiBuilder;

                LobbyServer.Instance.RoomSvrChannel.Send(room.RoomServerName, enterSceneMsg);

                LogSys.Log(LOG_TYPE.DEBUG, "Request enter field, user {0} room {1}", info.Guid, roomId);
            }
        }
Exemple #3
0
        internal void OnChangeSceneResult(ulong userGuid, int roomID, int targetRoomID, int result, int hp, int mp)
        {
            UserInfo user = LobbyServer.Instance.UserProcessScheduler.GetUserInfo(userGuid);

            if (user == null)
            {
                return;
            }
            if ((int)SceneOperationResultEnum.Success == result)
            {
                RoomInfo room       = m_LobbyInfo.GetRoomByID(roomID);
                RoomInfo targetRoom = m_LobbyInfo.GetRoomByID(targetRoomID);
                if (null != room && null != targetRoom)
                {
                    int   fromSceneId = room.SceneType;
                    int   targetSceneId = targetRoom.SceneType;
                    float enterX = 50, enterY = 50;

                    /*
                     * int transportId = TransportConfigProvider.GenTransportId(fromSceneId, targetSceneId);
                     * TransportConfig cfg = TransportConfigProvider.Instance.GetTransportConfig(transportId);
                     * if (null != cfg) {
                     *  enterX = cfg.m_EnterX;
                     *  enterY = cfg.m_EnterY;
                     * }
                     */
                    room.DelUsers(userGuid);
                    if (room.RoomServerName == targetRoom.RoomServerName)
                    {
                        targetRoom.AddUsers(user.CampId, userGuid);
                        user.CurrentState = UserState.Room;

                        Msg_BL_UserChangeScene msg = new Msg_BL_UserChangeScene();
                        msg.Guid    = userGuid;
                        msg.SceneId = targetRoom.SceneType;
                        LobbyServer.Instance.UserChannel.Send(user.UserSvrName, msg);
                    }
                    else
                    {
                        user.CurrentState = UserState.Online;
                        RequestEnterSceneRoom(user, targetRoomID, hp, mp, enterX, enterY);
                    }
                    LogSys.Log(LOG_TYPE.INFO, "User change field success ! , guid:{0} room:{1} target room:{2} result:{3}", userGuid, roomID, targetRoomID, (SceneOperationResultEnum)result);
                }
                else
                {
                    LobbyServer.Instance.HighlightPrompt(user, 42);//进入游戏失败,请稍后重试
                }
            }
            else
            {
                LogSys.Log(LOG_TYPE.INFO, "User change field failed ! guid:{0} room:{1} target room:{2} result:{3}", userGuid, roomID, targetRoomID, (SceneOperationResultEnum)result);

                LobbyServer.Instance.HighlightPrompt(user, 42);//进入游戏失败,请稍后重试
            }
        }
        internal int CreateAutoRoom(ulong[] users, int type)
        {
            RoomInfo room = NewRoomInfo();

            room.RoomId         = ++m_CurRoomId;
            room.SceneType      = type;
            room.RoomServerName = GetIdlestRoomServer();
            room.TotalCount     = users.Length;
            room.AddUsers((int)CampIdEnum.Blue, users);
            if (!m_Rooms.ContainsKey(room.RoomId))
            {
                m_Rooms.Add(room.RoomId, room);
            }
            else
            {
                m_Rooms[room.RoomId] = room;
            }
            room.Creator = 0;
            return(room.RoomId);
        }