Inheritance: global::ProtoBuf.IExtensible
コード例 #1
0
 private void HandleUserChangeScene(Msg_BL_UserChangeScene msg_, PBChannel channel, int src, uint session)
 {
     UserProcessScheduler dataProcess = UserServer.Instance.UserProcessScheduler;
     UserInfo user = dataProcess.GetUserInfo(msg_.Guid);
     if (user != null) {
         user.SceneId = msg_.SceneId;
     }
 }
コード例 #2
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);//进入游戏失败,请稍后重试
            }
        }