少年修仙传客户端代码仓库
client_Lhy
2019-07-04 8ebdcb8980b7a630beb6a1ff82381baa0ab2ddb5
System/Skill/SkillModel.cs
@@ -57,7 +57,18 @@
        public int minTaskHole { get; private set; }
        public int maxTaskHole { get; private set; }
        public bool skillMatchRedpointable
        {
            get { return LocalSave.GetBool("SkillMatchRedpointable_" + PlayerDatas.Instance.baseData.PlayerID); }
            set
            {
                LocalSave.SetBool("SkillMatchRedpointable_" + PlayerDatas.Instance.baseData.PlayerID, value);
                UpdateSkillMatchRedpoint();
            }
        }
        public readonly Redpoint redpoint = new Redpoint(103, 10301);
        public readonly Redpoint skillMatchRedpoint = new Redpoint(10301, 1030101);
        void ParseConfig()
        {
@@ -193,6 +204,92 @@
                return skill.GetSkillConfig(skill.level).SkillID;
            }
            return skillID;
        }
        public bool IsXpSkill(int skillId)
        {
            var config = SkillConfig.Get(skillId);
            if (config != null)
            {
                var job = PlayerDatas.Instance.baseData.Job;
                if (xpSkillsDic.ContainsKey(job))
                {
                    return xpSkillsDic[job] == config.SkillTypeID;
                }
            }
            return false;
        }
        void VerifyQuickSkillExistXp()
        {
            var quickSkills = PlayerDatas.Instance.skill.GetQuickSkills();
            var existXp = false;
            var lastIndex = 0;
            foreach (var index in quickSkills.Keys)
            {
                if (quickSkills[index] != null)
                {
                    if (IsXpSkill(quickSkills[index].id))
                    {
                        existXp = true;
                        QuickSetting.Instance.SetQuickSetting(QuickSetting.QuickSettingType.Skill, "***", index);
                        continue;
                    }
                    if (existXp)
                    {
                        var temp = QuickSetting.Instance.GetQuickSetting(QuickSetting.QuickSettingType.Skill, index);
                        QuickSetting.Instance.SetQuickSetting(QuickSetting.QuickSettingType.Skill, temp, index - 1);
                        QuickSetting.Instance.SetQuickSetting(QuickSetting.QuickSettingType.Skill, "***", index);
                    }
                    lastIndex = index;
                }
            }
            if (existXp)
            {
                if (lastIndex == QUICK_SKILL_COUNT - 1)
                {
                    var skills = GetActSkills();
                    for (int i = 0; i < skills.Count; i++)
                    {
                        if (PlayerDatas.Instance.skill.GetSKillById(skills[i]) != null
                            && !IsXpSkill(skills[i]) && PlayerDatas.Instance.skill.ContainsQuickSkill(skills[i]) == -1)
                        {
                            string value = MathUtils.Convert10To64(skills[i]);
                            QuickSetting.Instance.SetQuickSetting(QuickSetting.QuickSettingType.Skill, value, lastIndex);
                            break;
                        }
                    }
                }
                QuickSetting.Instance.SendPackage();
                PlayerDatas.Instance.skill.SetQuickSkills();
            }
        }
        List<int> GetActSkills()
        {
            List<int> skills = new List<int>();
            var skillType = (int)Math.Pow(2, PlayerDatas.Instance.baseData.Job);
            Dictionary<int, List<int>> dict = skillActDict[skillType];
            foreach (int key in dict.Keys)
            {
                List<int> list = dict[key];
                var skillId = list[0];
                foreach (var id in list)
                {
                    if (PlayerDatas.Instance.skill.GetSKillById(id) != null)
                    {
                        skillId = id;
                        break;
                    }
                }
                if (PlayerDatas.Instance.skill.GetFilterPlayerSkill(PlayerDatas.Instance.baseData.Job).Contains(skillId))
                {
                    continue;
                }
                skills.Add(skillId);
            }
            return skills;
        }
        #endregion
@@ -545,6 +642,8 @@
            }
            playerLoginOk = true;
            UpdateRedpoint();
            VerifyQuickSkillExistXp();
            UpdateSkillMatchRedpoint();
            //UpdateTaskHoleRedpoint();
        }
@@ -659,6 +758,11 @@
            }
        }
        void UpdateSkillMatchRedpoint()
        {
            skillMatchRedpoint.state = skillMatchRedpointable ? RedPointState.Simple : RedPointState.None;
        }
        public void SetDayRemind()
        {
            DayRemind.Instance.SetDayRemind(DayRemind.PASS_SKILL_REDPOINT, true);