| Core/NetworkPackage/ServerPack/HB2_DemonJar/HB209_tagMCFBCntRegainRemainTime.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Dungeon/DungeonModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/FindPrecious/DemonJarModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/FindPrecious/DemonJarWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Core/NetworkPackage/ServerPack/HB2_DemonJar/HB209_tagMCFBCntRegainRemainTime.cs
@@ -22,6 +22,7 @@ InfoList[i] = new tagMCFBCntRegain(); TransBytes(out InfoList[i].DataMapID, vBytes, NetDataType.DWORD); TransBytes(out InfoList[i].RemainTime, vBytes, NetDataType.DWORD); TransBytes(out InfoList[i].RegainCnt, vBytes, NetDataType.BYTE); } } @@ -29,6 +30,7 @@ { public uint DataMapID; // 地图ID public uint RemainTime; // 剩余时间秒 public byte RegainCnt; // 今日已恢复次数 } } System/Dungeon/DungeonModel.cs
@@ -24,7 +24,10 @@ Dictionary<int, List<DungeonInspireConfig>> dungeonInspireDict = new Dictionary<int, List<DungeonInspireConfig>>(); Dictionary<int, int> dungeonCollectNpcInfos = new Dictionary<int, int>(); Dictionary<int, int> dungeonNpcAttackInfos = new Dictionary<int, int>(); Dictionary<int, int> dungeonCoverCount = new Dictionary<int, int>(); List<int> trialDungeonMapList = new List<int>(); Dictionary<int, int[]> FBCoverCountDict = new Dictionary<int, int[]>(); public event Action<DungeonCoolDownType> dungeonCoolDownEvent; public event Action dungeonBeginCoolDownEndEvent; @@ -160,6 +163,26 @@ return dungeonCountRemainTimes.TryGetValue(_dataMapId, out _remainTime) && _remainTime > DateTime.Now; } public int GetCoverCount(int _dataMapId) { int count; if (!dungeonCoverCount.TryGetValue(_dataMapId, out count)) count = 0; int[] allCount; if (!FBCoverCountDict.TryGetValue(_dataMapId, out allCount)) return 0 ; return allCount[0] - count; } public int GetCoverCountYet(int _dataMapId) { int count; if (!dungeonCoverCount.TryGetValue(_dataMapId, out count)) count = 0; return count; } public int GetGrade(Dungeon _dungeon) { if (dungeonRecords.ContainsKey(_dungeon.mapId)) @@ -227,7 +250,7 @@ break; } return totalTimes; return totalTimes + GetCoverCountYet(_dataMapId); } public int GetBoughtTimes(int _dataMapId) @@ -759,11 +782,17 @@ public void UpdateCountRemaintime(HB209_tagMCFBCntRegainRemainTime _serverTimes) { for (int i = 0; i < _serverTimes.InfoList.Length; i++) { var info = _serverTimes.InfoList[i]; dungeonCountRemainTimes[(int)info.DataMapID] = TimeUtility.ServerNow int mapID = (int)info.DataMapID; dungeonCountRemainTimes[mapID] = TimeUtility.ServerNow + new TimeSpan(TimeSpan.TicksPerSecond * info.RemainTime); // 获取FB已恢复次数 dungeonCoverCount[mapID] = (int)info.RegainCnt; if (countRemainTimeChangeEvent != null) { @@ -1550,6 +1579,18 @@ guardSkyBuffIds = JsonMapper.ToObject<int[]>(funcConfig.Numerical4); guardSkyGuardNpcs = JsonMapper.ToObject<int[]>(funcConfig.Numerical5); } funcConfig = FuncConfigConfig.Get("FBCntRegainInterval"); var json = LitJson.JsonMapper.ToObject(funcConfig.Numerical1); foreach (var key in json.Keys) { var mapID = int.Parse(key); var array = LitJson.JsonMapper.ToObject<int[]>(json[key].ToJson()); FBCoverCountDict[mapID] = array; } } } System/FindPrecious/DemonJarModel.cs
@@ -97,12 +97,14 @@ dungeonModel.dungeonRecordChangeEvent += OnDungeonRecordUpdate; dungeonModel.updateDungeonBuyCnt += OnDungeonBuyCount; dungeonModel.countRemainTimeChangeEvent += OnDungeonUpdateRedPoint; } public override void UnInit() { dungeonModel.dungeonRecordChangeEvent -= OnDungeonRecordUpdate; dungeonModel.updateDungeonBuyCnt -= OnDungeonBuyCount; dungeonModel.countRemainTimeChangeEvent -= OnDungeonUpdateRedPoint; } public void OnBeforePlayerDataInitialize() @@ -491,6 +493,15 @@ } } private void OnDungeonUpdateRedPoint(int mapid) { if (PlayerDatas.Instance.baseData.LV >= GeneralDefine.demonJarRedPoint) { UpdateRedpoint(); } } private void OnDungeonBuyCount() { if (PlayerDatas.Instance.baseData.LV >= GeneralDefine.demonJarRedPoint) System/FindPrecious/DemonJarWin.cs
@@ -30,6 +30,8 @@ [SerializeField] RectTransform m_ContainerDouble; [SerializeField] Button m_BtnAutoAndDouble; [SerializeField] Text m_Count; [SerializeField] Text m_CountOver; DemonJarModel model { get { return ModelCenter.Instance.GetModel<DemonJarModel>(); } } FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } } @@ -264,6 +266,7 @@ { m_CountRemainTime.gameObject.SetActive(true); m_CountRemainTime.Begin((int)(endTime - TimeUtility.ServerNow).TotalSeconds); m_Count.text = Language.Get("FindPrecious_7", dungeonModel.GetCoverCount(DemonJarModel.DATA_MAPID)); } else { @@ -274,6 +277,7 @@ { m_CountRemainTime.gameObject.SetActive(false); } m_CountOver.gameObject.SetActive(dungeonModel.GetCoverCount(DemonJarModel.DATA_MAPID) == 0); }