| System/PlayerDead/PlayerDeadModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Skill/SkillModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Skill/SkillPassWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/WindowJump/WindowJumpMgr.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
System/PlayerDead/PlayerDeadModel.cs
@@ -12,6 +12,9 @@ { FuncConfigConfig funcConfig = Config.Instance.Get<FuncConfigConfig>("RebornArguments"); dungeonKillArray = ConfigParse.GetMultipleStr<int>(funcConfig.Numerical2); RebornConditions = ConfigParse.GetMultipleStr<int>(funcConfig.Numerical1); FuncConfigConfig RebornTime = Config.Instance.Get<FuncConfigConfig>("DuplicatesRebornTime"); duplicatesRebornDict = ConfigParse.GetDic<int, int>(RebornTime.Numerical1); SysNotifyMgr.Instance.sysNotifyEvent += RefreshPlayerDieInfo; } @@ -128,8 +131,6 @@ if (_tagMapModel.MapFBType == 0) { IsCanReborn = true; _tagfuncModel = Config.Instance.Get<FuncConfigConfig>("RebornArguments"); RebornConditions = ConfigParse.GetMultipleStr<int>(_tagfuncModel.Numerical1); rebornTiredNum = RebornConditions[0]; rebornPrice = RebornConditions[2]; //isBossKill = StatusManager.Instance.IsExist((int)playerId,20022); @@ -153,8 +154,6 @@ if (_dungeonOpenTimeModel.DeathTime == 1) { IsCanReborn = true; _tagfuncModel = Config.Instance.Get<FuncConfigConfig>("DuplicatesRebornTime"); duplicatesRebornDict = ConfigParse.GetDic<int, int>(_tagfuncModel.Numerical1); if (!duplicatesRebornDict.ContainsKey(PlayerDatas.Instance.baseData.MapID)) { this.duplicatesRebornTime = duplicatesRebornDict[0]; @@ -216,12 +215,9 @@ public void RefreshDeadModel(HB103_tagMCPlayerDeadTime data) { if (data.DeadTime == 0) return; _tagfuncModel = Config.Instance.Get<FuncConfigConfig>("RebornArguments"); RebornConditions = ConfigParse.GetMultipleStr<int>(_tagfuncModel.Numerical1); double timeOffest = GetTimeOffest(TimeUtility.GetTime(data.DeadTime)); if (timeOffest <= RebornConditions[1]) { System/Skill/SkillModel.cs
@@ -14,11 +14,13 @@ { ParseConfig(); FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent; PlayerTaskDatas.Event_TaskInformation += TaskInformationUpdate; } public override void UnInit() { FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent; PlayerTaskDatas.Event_TaskInformation -= TaskInformationUpdate; } public void OnBeforePlayerDataInitialize() @@ -27,6 +29,7 @@ equipPassSkills.Clear(); playerLoginOk = false; equipPassPage = false; taskHoleCondition = 0; } #region 配置 @@ -70,6 +73,7 @@ passSkillLimits.Add(limit); } passEquipCnt = int.Parse(funcCfg.Numerical2); taskHoleDict = ConfigParse.GetDic<int, int>(funcCfg.Numerical4); } funcCfg = Config.Instance.Get<FuncConfigConfig>("PassSkillEquipGetWay"); if (funcCfg != null) @@ -212,6 +216,7 @@ public int presentEquipPage { get; private set; } public bool playerLoginOk = false; private Dictionary<int, Dictionary<int, int>> equipPassSkills = new Dictionary<int, Dictionary<int, int>>(); public Dictionary<int, int> taskHoleDict { get; private set; } public event Action UpdatePassEquipSkillEvent; public bool equipPassPage { get; set; } public bool TryGetEquipPassSkills(int page, int hole, out int _skillId) @@ -283,6 +288,52 @@ } } public event Action taskUnlockUpdate; public int taskHoleCondition { get; private set; } public const string TASKHOLEKEY = "OpenSkillSlots"; public int UnlockPassHole { get { return LocalSave.GetInt(StringUtility.Contact(TASKHOLEKEY, "_", PlayerDatas.Instance.baseData.PlayerID)); } set { LocalSave.SetInt(StringUtility.Contact(TASKHOLEKEY, "_", PlayerDatas.Instance.baseData.PlayerID), value); } } public bool IsTaskHoleUnlock(int condition) { if (task._DicTaskInformation.ContainsKey(1) && task._DicTaskInformation[1].ContainsKey(TASKHOLEKEY)) { var value = 0; int.TryParse(task._DicTaskInformation[1][TASKHOLEKEY], out value); return value >= condition; } return false; } private void TaskInformationUpdate(int _id, Dictionary<int, Dictionary<string, string>> _Dic) { if (_Dic != null && _Dic.ContainsKey(1)) { var dict = _Dic[1]; if (dict.ContainsKey(TASKHOLEKEY)) { var result = 0; int.TryParse(dict[TASKHOLEKEY], out result); if (result != taskHoleCondition && playerLoginOk) { UnlockPassHole = result; if (taskUnlockUpdate != null) { taskUnlockUpdate(); } } taskHoleCondition = result; } } } RolePromoteModel m_PromoteModel; RolePromoteModel promoteModel { @@ -291,6 +342,8 @@ return m_PromoteModel ?? (m_PromoteModel = ModelCenter.Instance.GetModel<RolePromoteModel>()); } } PlayerTaskDatas task { get { return ModelCenter.Instance.GetModel<PlayerTaskDatas>(); } } public void SendEquipPassSkill(int _page, int _index, int _skillId) { @@ -335,6 +388,13 @@ else if (limit.MountLv > 0) { if (promoteModel.GetMountTotallv() < limit.MountLv) { return false; } } else if (limit.OpenSkillSlots > 0) { if (!IsTaskHoleUnlock(limit.OpenSkillSlots)) { return false; } @@ -584,6 +644,7 @@ public int level; public int vipLv; public int MountLv; public int OpenSkillSlots; } [Serializable] System/Skill/SkillPassWin.cs
@@ -25,6 +25,7 @@ [SerializeField] Button m_LeftBtn; [SerializeField] Button m_RightBtn; [SerializeField] List<SkillCell> equipPassSkills = new List<SkillCell>(); [SerializeField] List<UIEffect> equipPassEffects = new List<UIEffect>(); [SerializeField] Image m_DragImg; [SerializeField] Image m_DragSkillImg; [SerializeField] List<Button> m_PageBtns = new List<Button>(); @@ -36,6 +37,7 @@ [SerializeField] ClickScreenOtherSpace clickOtherSpace; private List<SkillConfig> skillListPass = new List<SkillConfig>(); private int presentSltEquipIndex = -1; Coroutine cacheCoroutine = null; SkillModel m_Model; SkillModel model { @@ -44,6 +46,8 @@ return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<SkillModel>()); } } PlayerTaskDatas task { get { return ModelCenter.Instance.GetModel<PlayerTaskDatas>(); } } RolePromoteModel m_PromoteModel; RolePromoteModel promoteModel @@ -119,6 +123,13 @@ UpdateEquipPassSkill(); SetEquipHoleSelect(GetEquipHoleIndex(model.presentSltSkillID)); DayRemind.Instance.SetDayRemind(DayRemind.PASS_SKILL_REDPOINT, true); model.taskUnlockUpdate += TaskUnlockUpdate; if (cacheCoroutine != null) { StopCoroutine(cacheCoroutine); cacheCoroutine = null; } } protected override void OnActived() @@ -129,6 +140,7 @@ protected override void OnAfterOpen() { DisplayEffect(); } protected override void OnPreClose() @@ -138,12 +150,52 @@ model.OnRefreshSltSkill -= OnRefreshSltSkill; model.UpdatePassEquipSkillEvent -= UpdatePassEquipSkillEvent; PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= OnRefreshPlayerInfo; model.taskUnlockUpdate -= TaskUnlockUpdate; model.SetDayRemind(); model.UnlockPassHole = 0; } protected override void OnAfterClose() { model.SendEquipPage(); } private void TaskUnlockUpdate() { DisplayEffect(); } void DisplayEffect() { if (model.UnlockPassHole != 0) { var index = 0; for (int i = 0; i < equipPassSkills.Count; i++) { PassSkillLimit limit; if (model.TryGetPassSkillLimit(i, out limit)) { if (limit.OpenSkillSlots != 0 && limit.OpenSkillSlots == model.UnlockPassHole) { index = i; break; } } } model.UnlockPassHole = 0; if (index >= 0 && index < equipPassEffects.Count) { equipPassEffects[index].Play(); cacheCoroutine = StartCoroutine(Co_UnlockEffectComplete()); } } } IEnumerator Co_UnlockEffectComplete() { yield return WaitingForSecondConst.WaitMS800; SysNotifyMgr.Instance.ShowTip("PassNewHole"); UpdateEquipPassSkill(); } protected override void LateUpdate() @@ -203,6 +255,10 @@ else if (_limit.MountLv > 0 && promoteModel.GetMountTotallv() < _limit.MountLv) { return true; } else if (_limit.OpenSkillSlots > 0 && !model.IsTaskHoleUnlock(_limit.OpenSkillSlots)) { return false; } } return false; @@ -347,6 +403,26 @@ continue; } } else if (limit.OpenSkillSlots > 0) { if (!model.IsTaskHoleUnlock(limit.OpenSkillSlots) || model.UnlockPassHole == limit.OpenSkillSlots) { SetEquipSkillDeActive(i); equipPassSkills[i].skillData.m_SkillNameTxt.color = equipHoleLimitColor; var taskName = string.Empty; if (model.taskHoleDict.ContainsKey(limit.OpenSkillSlots)) { var taskConfig = Config.Instance.Get<PyTaskConfig>(model.taskHoleDict[limit.OpenSkillSlots]); if (taskConfig != null) { var taskInfoConfig = Config.Instance.Get<TASKINFOConfig>(taskConfig.name); taskName = taskInfoConfig == null ? string.Empty : taskInfoConfig.show_writing; } } equipPassSkills[i].skillData.m_SkillNameTxt.text = Language.Get("PassSkillHoleLimitTask", taskName); continue; } } } int _skillId = 0; equipPassSkills[i].skillData.m_SkillNameTxt.text = string.Empty; @@ -441,6 +517,24 @@ m_GetWayBtn.gameObject.SetActive(true); } } else if (limit.OpenSkillSlots > 0) { if (!model.IsTaskHoleUnlock(limit.OpenSkillSlots)) { var taskName = string.Empty; if (model.taskHoleDict.ContainsKey(limit.OpenSkillSlots)) { var taskConfig = Config.Instance.Get<PyTaskConfig>(model.taskHoleDict[limit.OpenSkillSlots]); if (taskConfig != null) { var taskInfoConfig = Config.Instance.Get<TASKINFOConfig>(taskConfig.name); taskName = taskInfoConfig == null ? string.Empty : taskInfoConfig.show_writing; } } SysNotifyMgr.Instance.ShowTip("PassEquipLimitTask", taskName); m_GetWayBtn.gameObject.SetActive(false); } } } } System/WindowJump/WindowJumpMgr.cs
@@ -42,6 +42,7 @@ FairyModel fairyModel { get { return ModelCenter.Instance.GetModel<FairyModel>(); } } DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } } TrialDungeonModel trialDungeonModel { get { return ModelCenter.Instance.GetModel<TrialDungeonModel>(); } } ImpactRankModel rankModel { get { return ModelCenter.Instance.GetModel<ImpactRankModel>(); } } public bool IsJumpState { get; private set;} private int jumpPhase = 0; @@ -164,9 +165,20 @@ } break; case JumpUIType.OpenServerMountRank: var type = int.Parse(_tagWinSearchModel.SelectActive); if (rankModel.IsLock(type)) { SysNotifyMgr.Instance.ShowTip("InOperationTimeError"); return; } if (TimeUtility.OpenDay >= rankModel.openServerActivityDays) { SysNotifyMgr.Instance.ShowTip("ActiveOutTime"); return; } break; case JumpUIType.OpenServerRank: var _model = ModelCenter.Instance.GetModel<ImpactRankModel>(); if (TimeUtility.OpenDay >= _model.openServerActivityDays) if (TimeUtility.OpenDay >= rankModel.openServerActivityDays) { SysNotifyMgr.Instance.ShowTip("ActiveOutTime"); return; @@ -618,7 +630,8 @@ SetJumpLogic<BlastFurnaceWin>(_tagWinSearchModel.TABID); break; case JumpUIType.OpenServerMountRank: ModelCenter.Instance.GetModel<ImpactRankModel>().gotoImpactRankType =int.Parse(_tagWinSearchModel.SelectActive); var type = int.Parse(_tagWinSearchModel.SelectActive); ModelCenter.Instance.GetModel<ImpactRankModel>().gotoImpactRankType = type; SetJumpLogic<OpenServerActivityWin>(_tagWinSearchModel.TABID); break; case JumpUIType.OpenServerRank: