예제 #1
0
        private bool LoadSceneData(int sceneResId)
        {
            bool result = true;

            m_SceneResId = sceneResId;
            // 加载场景配置数据
            m_SceneConfig = SceneConfigProvider.Instance.GetSceneConfigById(m_SceneResId);
            if (null == m_SceneConfig)
            {
                LogSystem.Error("LoadSceneData {0} failed!", sceneResId);
            }

            m_SceneDropOut = SceneConfigProvider.Instance.GetSceneDropOutById(m_SceneConfig.m_DropId);
            // 加载本场景xml数据
            m_SceneStaticData = SceneConfigProvider.Instance.LoadSceneConfig(
                sceneResId, FilePathDefine_Client.C_RootPath);
            if (null == m_SceneStaticData)
            {
                LogSystem.Error("LoadSceneConfig {0} failed!", sceneResId);
            }
            m_SceneStaticData = SceneConfigProvider.Instance.GetMapDataBySceneResId(m_SceneResId);
            HashSet <int> monstList = null;

            if (IsExpedition)
            {
                monstList = new HashSet <int>();
                RoleInfo             curRole           = LobbyClient.Instance.CurrentRole;
                ExpeditionPlayerInfo expInfo           = curRole.GetExpeditionInfo();
                ExpeditionPlayerInfo.TollgateData data = expInfo.Tollgates[expInfo.ActiveTollgate];
                monstList.UnionWith(data.EnemyList);
            }
            GfxSystem.LoadScene(m_SceneConfig.m_ClientSceneFile, m_SceneConfig.m_Chapter, m_SceneConfig.GetId(), monstList, OnLoadFinish);
            return(result);
        }