少年修仙传客户端代码仓库
client_Zxw
2018-11-12 b82d1347f6b6e44b9824f0b4d456a9245d07af5a
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
6个文件已修改
175 ■■■■ 已修改文件
Core/NetworkPackage/DTCFile/ServerPack/HA7_Interaction/DTCA703_tagMCFBEnterTickList.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DailyQuest/DailyQuestBehaviour.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonData.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonEnterInfo.cs 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonModel.cs 90 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/NormalDungeonEntranceWin.cs 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HA7_Interaction/DTCA703_tagMCFBEnterTickList.cs
@@ -19,7 +19,7 @@
        HA703_tagMCFBEnterTickList vNetData = vNetPack as HA703_tagMCFBEnterTickList;
        if (vNetData.Cnt > 0) {
            model.UpdateEnterCD(vNetData.EnterTickList);
            model.UpdateEnterCoolDown(vNetData.EnterTickList);
        }
    }
System/DailyQuest/DailyQuestBehaviour.cs
@@ -379,16 +379,16 @@
        {
            if (dailyQuestConfig.RelatedType == 2 && state == DailyQuestModel.DailyQuestState.Normal)
            {
                var cd = dungeonModel.GetEnterCD(dailyQuestConfig.RelatedID);
                if (cd != null && cd.overdueTime > DateTime.Now)
                var cd = dungeonModel.GetEnterCoolDown(dailyQuestConfig.RelatedID);
                if (cd != null && dungeonModel.IsEnterCountDown(dailyQuestConfig.RelatedID))
                {
                    UpdateGotoTitle((int)(cd.overdueTime - DateTime.Now).TotalSeconds);
                    UpdateGotoTitle((int)(cd.endCoolDownTime - TimeUtility.ServerNow).TotalSeconds);
                    secondTimer += Time.deltaTime;
                    if (secondTimer > 1f)
                    {
                        secondTimer = 0f;
                        UpdateGotoTitle((int)(cd.overdueTime - DateTime.Now).TotalSeconds);
                        UpdateGotoTitle((int)(cd.endCoolDownTime - TimeUtility.ServerNow).TotalSeconds);
                    }
                }
                else
System/Dungeon/DungeonData.cs
@@ -227,23 +227,26 @@
    }
    public class DungeonEnterCD
    public class DungeonEnterCoolDown
    {
        public int mapId;
        public uint dungeonSurplusTime;
        public uint enterCd;
        public uint clearCdCost;
        public DateTime overdueTime;
        public int level;
        public int duration;
        public int clearCoolDownCost;
        public DateTime endCoolDownTime;
        public void SetEnterTime(uint _enterTime)
        public void SetEnterTime(uint tick)
        {
            dungeonSurplusTime = _enterTime;
            overdueTime = DateTime.Now.AddSeconds(dungeonSurplusTime);
            endCoolDownTime = TimeUtility.GetTime(tick);
            endCoolDownTime = endCoolDownTime.AddTicks(duration * TimeSpan.TicksPerSecond);
        }
        public void SetCost(uint _cost)
        public int suplursSeconds
        {
            clearCdCost = _cost;
            get
            {
                return Mathf.Max(0, (int)(endCoolDownTime - TimeUtility.ServerNow).TotalSeconds);
            }
        }
    }
System/Dungeon/DungeonEnterInfo.cs
@@ -25,9 +25,9 @@
            }
        }
        DungeonEnterCD dungeonEnter;
        DungeonEnterCoolDown dungeonEnter;
        public event Action OnCdComplete;
        public event Action OnCoolDowndComplete;
        private void Awake()
        {
@@ -39,11 +39,11 @@
        private void OnClearBtn()
        {
            ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), UIHelper.ReplaceNewLine(Language.Get("FairyLand_Func11", dungeonEnter.clearCdCost)), (bool isOk) =>
            ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), UIHelper.ReplaceNewLine(Language.Get("FairyLand_Func11", dungeonEnter.clearCoolDownCost)), (bool isOk) =>
            {
                if (isOk)
                {
                    if (PlayerDatas.Instance.baseData.GoldPaper + PlayerDatas.Instance.baseData.Gold >= dungeonEnter.clearCdCost)
                    if (PlayerDatas.Instance.baseData.GoldPaper + PlayerDatas.Instance.baseData.Gold >= dungeonEnter.clearCoolDownCost)
                    {
                        model.RequestClearEnterCD(dungeonEnter.mapId);
                    }
@@ -64,14 +64,14 @@
        {
            var dungeonId = model.GetDungeonId(model.currentDungeon);
            var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
            dungeonEnter = model.GetEnterCD(dungeonConfig.DataMapID);
            dungeonEnter = model.GetEnterCoolDown(dungeonConfig.DataMapID);
            model.updateDungeonEnterCD += UpdateDungeonEnterCD;
            model.dungeonEnterCoolDownUpdate += UpdateDungeonEnterCD;
        }
        private void UpdateDungeonEnterCD()
        {
            if (dungeonEnter.dungeonSurplusTime == 0)
            if (dungeonEnter != null && dungeonEnter.suplursSeconds == 0)
            {
                gameObject.SetActive(false);
            }
@@ -79,19 +79,20 @@
        private void OnDisable()
        {
            model.updateDungeonEnterCD -= UpdateDungeonEnterCD;
            model.dungeonEnterCoolDownUpdate -= UpdateDungeonEnterCD;
        }
        private void LateUpdate()
        {
            TimeSpan t = dungeonEnter.overdueTime - DateTime.Now;
            surplusTimeText.text = StringUtility.Contact(Language.Get("FairyLand_Func12"), t.Minutes.ToString("D2"), ":", Mathf.Max(0, t.Seconds).ToString("D2"));
            if (t.Minutes <= 0 && t.Seconds <= 0)
            TimeSpan timeSpan = dungeonEnter.endCoolDownTime - TimeUtility.ServerNow;
            surplusTimeText.text = StringUtility.Contact(Language.Get("FairyLand_Func12"), timeSpan.Minutes.ToString("D2"), ":",
                Mathf.Max(0, timeSpan.Seconds).ToString("D2"));
            if (timeSpan.Minutes <= 0 && timeSpan.Seconds <= 0)
            {
                gameObject.SetActive(false);
                if (OnCdComplete != null)
                if (OnCoolDowndComplete != null)
                {
                    OnCdComplete();
                    OnCoolDowndComplete();
                }
            }
        }
System/Dungeon/DungeonModel.cs
@@ -17,7 +17,7 @@
        Dictionary<int, DungeonRecord> dungeonRecords = new Dictionary<int, DungeonRecord>();
        Dictionary<int, DailyQuestOpenTime> dungeonOpenTimes = new Dictionary<int, DailyQuestOpenTime>();
        Dictionary<int, int[]> dungeonGradeRewardRate = new Dictionary<int, int[]>();
        Dictionary<int, DungeonEnterCD> dungeonEnterDic = new Dictionary<int, DungeonEnterCD>();
        Dictionary<int, DungeonEnterCoolDown> dungeonEnterDict = new Dictionary<int, DungeonEnterCoolDown>();
        Dictionary<int, string> dungeonBuyCntFormulaDic = new Dictionary<int, string>();
        Dictionary<int, int> mapIdToDataMapId = new Dictionary<int, int>();
        Dictionary<int, DateTime> dungeonCountRemainTimes = new Dictionary<int, DateTime>();
@@ -29,7 +29,7 @@
        public event Action updateMissionEvent;
        public event Action<int> dungeonStageChangeEvent;
        public event Action getDungeonResultEvent;
        public event Action updateDungeonEnterCD;
        public event Action dungeonEnterCoolDownUpdate;
        public event Action updateDungeonBuyCnt;
        public event Action dungeonFairyLandChangeEvent;
        public event Action dungeonInspireLvEvent;
@@ -319,7 +319,7 @@
            var dungeonId = GetDungeonId(_dungeon);
            var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
            if (IsEnterCountDowning(_dungeon.mapId))
            if (IsEnterCountDown(_dungeon.mapId))
            {
                _error = 1;
                return false;
@@ -654,50 +654,51 @@
            }
        }
        public DungeonEnterCD GetEnterCD(int _mapID)
        public DungeonEnterCoolDown GetEnterCoolDown(int _mapID)
        {
            if (dungeonEnterDic.ContainsKey(_mapID))
            if (dungeonEnterDict.ContainsKey(_mapID))
            {
                return dungeonEnterDic[_mapID];
                return dungeonEnterDict[_mapID];
            }
            return null;
        }
        public bool HasEnterCD(int _mapID)
        public bool ContainsDungeonEnter(int _mapID)
        {
            return dungeonEnterDic.ContainsKey(_mapID);
            return dungeonEnterDict.ContainsKey(_mapID);
        }
        public bool IsEnterCountDowning(int _mapID)
        public bool IsEnterCountDown(int _mapID)
        {
            var cd = GetEnterCD(_mapID);
            if (cd == null)
            var dungeonEnterInfo = GetEnterCoolDown(_mapID);
            if (dungeonEnterInfo == null)
            {
                return false;
            }
            if (cd.dungeonSurplusTime == 0)
            if (dungeonEnterInfo.level != 0
                && PlayerDatas.Instance.baseData.LV >= dungeonEnterInfo.level)
            {
                return false;
            }
            return (cd.overdueTime - DateTime.Now).TotalSeconds > 0;
            return (dungeonEnterInfo.endCoolDownTime - TimeUtility.ServerNow).TotalSeconds > 0;
        }
        public void UpdateEnterCD(HA703_tagMCFBEnterTickList.tagMCFBEnterTick[] vNetDatas)
        public void UpdateEnterCoolDown(HA703_tagMCFBEnterTickList.tagMCFBEnterTick[] vNetDatas)
        {
            for (int i = 0; i < vNetDatas.Length; i++)
            {
                var data = vNetDatas[i];
                if (dungeonEnterDic.ContainsKey((int)data.MapID))
                if (dungeonEnterDict.ContainsKey((int)data.MapID))
                {
                    dungeonEnterDic[(int)data.MapID].SetEnterTime(data.LastEnterTick);
                    dungeonEnterDict[(int)data.MapID].SetEnterTime(data.LastEnterTick);
                }
            }
            if (updateDungeonEnterCD != null)
            if (dungeonEnterCoolDownUpdate != null)
            {
                updateDungeonEnterCD();
                dungeonEnterCoolDownUpdate();
            }
        }
@@ -1350,45 +1351,50 @@
                }
            }
            FuncConfigConfig funcCfg = Config.Instance.Get<FuncConfigConfig>("FBEnterCD");
            if (funcCfg != null)
            var funcConfig = Config.Instance.Get<FuncConfigConfig>("FBEnterCD");
            if (funcConfig != null)
            {
                Dictionary<int, uint> dic = ConfigParse.GetDic<int, uint>(funcCfg.Numerical1);
                foreach (var key in dic.Keys)
                Dictionary<int, int> dict = ConfigParse.GetDic<int, int>(funcConfig.Numerical1);
                foreach (var key in dict.Keys)
                {
                    DungeonEnterCD data = new DungeonEnterCD();
                    DungeonEnterCoolDown data = new DungeonEnterCoolDown();
                    data.mapId = key;
                    data.enterCd = dic[key];
                    dungeonEnterDic.Add(key, data);
                    data.duration = dict[key];
                    dungeonEnterDict.Add(key, data);
                }
                dic = ConfigParse.GetDic<int, uint>(funcCfg.Numerical2);
                foreach (var key in dic.Keys)
                dict = ConfigParse.GetDic<int, int>(funcConfig.Numerical2);
                foreach (var key in dict.Keys)
                {
                    dungeonEnterDic[key].SetCost(dic[key]);
                    dungeonEnterDict[key].clearCoolDownCost = dict[key];
                }
                dict = ConfigParse.GetDic<int, int>(funcConfig.Numerical3);
                foreach (var key in dict.Keys)
                {
                    dungeonEnterDict[key].level = dict[key];
                }
            }
            funcCfg = Config.Instance.Get<FuncConfigConfig>("BuyFBCntCost");
            if (funcCfg != null)
            funcConfig = Config.Instance.Get<FuncConfigConfig>("BuyFBCntCost");
            if (funcConfig != null)
            {
                JsonData jsonData = JsonMapper.ToObject(funcCfg.Numerical1);
                JsonData jsonData = JsonMapper.ToObject(funcConfig.Numerical1);
                foreach (var key in jsonData.Keys)
                {
                    int _mapId = int.Parse(key);
                    dungeonBuyCntFormulaDic.Add(_mapId, jsonData[key].ToString());
                }
            }
            funcCfg = Config.Instance.Get<FuncConfigConfig>("MunekadoMapID");
            if (funcCfg != null)
            funcConfig = Config.Instance.Get<FuncConfigConfig>("MunekadoMapID");
            if (funcConfig != null)
            {
                trialDungeonMapList.AddRange(ConfigParse.GetMultipleStr<int>(funcCfg.Numerical1));
                trialDungeonMapList.AddRange(ConfigParse.GetMultipleStr<int>(funcConfig.Numerical1));
            }
            funcCfg = Config.Instance.Get<FuncConfigConfig>("FBEncourageBuff");
            if (funcCfg != null)
            funcConfig = Config.Instance.Get<FuncConfigConfig>("FBEncourageBuff");
            if (funcConfig != null)
            {
                dungeonMaxInspireCountDict = ConfigParse.GetDic<int, int>(funcCfg.Numerical2);
                dungeonInspireUpperDict = ConfigParse.GetDic<int, int>(funcCfg.Numerical3);
                dungeonMaxInspireCountDict = ConfigParse.GetDic<int, int>(funcConfig.Numerical2);
                dungeonInspireUpperDict = ConfigParse.GetDic<int, int>(funcConfig.Numerical3);
            }
            foreach (var _cfg in Config.Instance.GetAllValues<DungeonInspireConfig>())
@@ -1402,11 +1408,11 @@
                _list.Add(_cfg);
            }
            funcCfg = Config.Instance.Get<FuncConfigConfig>("FamilyInvadeCfg");
            if (funcCfg != null)
            funcConfig = Config.Instance.Get<FuncConfigConfig>("FamilyInvadeCfg");
            if (funcConfig != null)
            {
                guardSkyBuffIds = JsonMapper.ToObject<int[]>(funcCfg.Numerical4);
                guardSkyGuardNpcs = JsonMapper.ToObject<int[]>(funcCfg.Numerical5);
                guardSkyBuffIds = JsonMapper.ToObject<int[]>(funcConfig.Numerical4);
                guardSkyGuardNpcs = JsonMapper.ToObject<int[]>(funcConfig.Numerical5);
            }
        }
System/Dungeon/NormalDungeonEntranceWin.cs
@@ -85,8 +85,8 @@
        protected override void OnAfterOpen()
        {
            playerPack.RefreshItemCountAct += OnPackageItemChange;
            model.updateDungeonEnterCD += UpdateDungeonEnterCD;
            m_EnterCdContainer.OnCdComplete += UpdateDungeonEnterCD;
            model.dungeonEnterCoolDownUpdate += DungeonEnterCoolDownUpdate;
            m_EnterCdContainer.OnCoolDowndComplete += DungeonEnterCoolDownUpdate;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent += PlayerDataRefreshInfoEvent;
            PlayerDatas.Instance.OnRoleAttrRefresh += OnWorldLevelRefresh;
            FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
@@ -95,8 +95,8 @@
        protected override void OnPreClose()
        {
            playerPack.RefreshItemCountAct -= OnPackageItemChange;
            model.updateDungeonEnterCD -= UpdateDungeonEnterCD;
            m_EnterCdContainer.OnCdComplete -= UpdateDungeonEnterCD;
            model.dungeonEnterCoolDownUpdate -= DungeonEnterCoolDownUpdate;
            m_EnterCdContainer.OnCoolDowndComplete -= DungeonEnterCoolDownUpdate;
            PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= PlayerDataRefreshInfoEvent;
            PlayerDatas.Instance.OnRoleAttrRefresh -= OnWorldLevelRefresh;
            FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
@@ -119,13 +119,13 @@
            m_ContainerGroup.gameObject.SetActive(!openGroup);
        }
        private void UpdateDungeonEnterCD()
        private void DungeonEnterCoolDownUpdate()
        {
            var dungeonId = model.GetDungeonId(model.currentDungeon);
            var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
            bool _cd = model.HasEnterCD(dungeonConfig.DataMapID) && model.IsEnterCountDowning(dungeonConfig.DataMapID);
            m_EnterCdContainer.gameObject.SetActive(_cd);
            m_ContainerBtns.gameObject.SetActive(!_cd);
            bool inCoolDown = model.ContainsDungeonEnter(dungeonConfig.DataMapID) && model.IsEnterCountDown(dungeonConfig.DataMapID);
            m_EnterCdContainer.gameObject.SetActive(inCoolDown);
            m_ContainerBtns.gameObject.SetActive(!inCoolDown);
            DisplayFairyLandTip();
        }
@@ -146,7 +146,7 @@
            m_DungeonTitle.text = dungeonConfig.FBName;
            UpdateDungeonEnterCD();
            DungeonEnterCoolDownUpdate();
            m_BossPortrayal.gameObject.SetActive(true);
            if (dungeonConfig.BossActorID != null && dungeonConfig.BossActorID.Length > 0)
@@ -378,7 +378,7 @@
                return false;
            }
            if (model.IsEnterCountDowning(model.currentDungeon.mapId))
            if (model.IsEnterCountDown(model.currentDungeon.mapId))
            {
                _error = 4;
                return false;
@@ -438,6 +438,7 @@
            if (refreshType == PlayerDataRefresh.LV)
            {
                DisplayFairyLandTip();
                DungeonEnterCoolDownUpdate();
            }
        }
@@ -458,9 +459,9 @@
        {
            var dungeonId = model.GetDungeonId(model.currentDungeon);
            var dungeonConfig = Config.Instance.Get<DungeonConfig>(dungeonId);
            bool cd = model.HasEnterCD(dungeonConfig.DataMapID) && model.IsEnterCountDowning(dungeonConfig.DataMapID);
            bool inCoolDown = model.ContainsDungeonEnter(dungeonConfig.DataMapID) && model.IsEnterCountDown(dungeonConfig.DataMapID);
            var satisfy = (PlayerDatas.Instance.baseData.LV + GeneralDefine.fairyLandBuffCondition) <= PlayerDatas.Instance.worldLv
               && dungeonConfig.DataMapID == 31080 && !cd && FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.WorldLv);
               && dungeonConfig.DataMapID == 31080 && !inCoolDown && FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.WorldLv);
            m_FairyLandTipBehaviour.gameObject.SetActive(satisfy);
            var config = Config.Instance.Get<SkillConfig>(GeneralDefine.fairyLandBuffId);
            if (config != null)