少年修仙传客户端代码仓库
client_Hale
2019-03-06 c7337c177e8423c76727c86d3a8d8c75900460b7
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
1个文件已修改
114 ■■■■■ 已修改文件
Core/GameEngine/Model/Player/Skill/PlayerSkillDatas.cs 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Player/Skill/PlayerSkillDatas.cs
@@ -9,13 +9,15 @@
public class PlayerSkillDatas
{
    private Dictionary<int, PlayerSkillData> _playerSkills = new Dictionary<int, PlayerSkillData>();
    private Dictionary<int, PlayerSkillData> _quickSkills = new Dictionary<int, PlayerSkillData>();
    public static event Action OnQuickSkillRefresh;
    public static event Action OnRefreshSkill;
    private Dictionary<int, PlayerSkillData> m_PlayerSkills = new Dictionary<int, PlayerSkillData>();
    private Dictionary<int, PlayerSkillData> m_QuickSkills = new Dictionary<int, PlayerSkillData>();
    private Dictionary<int, List<int>> filterPlayerSkillDic = new Dictionary<int, List<int>>();
    private Dictionary<int, int> filterQuickSkillDic = new Dictionary<int, int>();
    public static event Action OnQuickSkillRefresh;
    public static event Action OnRefreshSkill;
    private bool hasInitQuickSkill = false;
    private bool isServerPrepare = false;
    SkillModel m_Model;
@@ -38,41 +40,33 @@
        }
        PlayerSkillData data = null;
        _playerSkills.TryGetValue(vNetData.NewSkillID, out data);
        m_PlayerSkills.TryGetValue(vNetData.NewSkillID, out data);
        if (data == null)
        {
            data = new PlayerSkillData(vNetData.NewSkillID, 1);
            _playerSkills.Add(data.id, data);
            m_PlayerSkills.Add(data.id, data);
        }
        model.CheckEquipPassSkill(data);
        bool fitter = GetFilterPlayerSkill(PlayerDatas.Instance.baseData.Job).Contains(data.id);
        if (hasInitQuickSkill)
        {
            int pos = ContainsQuickSkillType(data.id);
            if (pos != -1)
            {
                SetQuickSkill(pos, data.id);
            }
        }
        PlayerSkillData olddata = null;
        _playerSkills.TryGetValue(vNetData.OldSkillID, out olddata);
        m_PlayerSkills.TryGetValue(vNetData.OldSkillID, out olddata);
        if (olddata != null)
        {
            if (hasInitQuickSkill)
            {
                int pos = ContainsQuickSkill(olddata.id);
                if (pos != -1 && !fitter)
                {
                    SetQuickSkill(pos, data.id);
                }
            }
            _playerSkills.Remove(vNetData.OldSkillID);
            m_PlayerSkills.Remove(vNetData.OldSkillID);
            olddata = null;
            var oldConfig = SkillConfig.Get(vNetData.OldSkillID);
            if (oldConfig.SkillTypeID == data.skillCfg.SkillTypeID)
            {
                var pos = ContainsQuickSkill(vNetData.OldSkillID);
                if (pos != -1)
                {
                    SetQuickSkill(pos, vNetData.NewSkillID);
                }
            }
        }
        UpdateQuickSkill(data);
@@ -95,10 +89,10 @@
    public void SetQuickSkills()
    {
        _quickSkills.Clear();
        m_QuickSkills.Clear();
        for (int i = 0; i < SkillModel.QUICK_SKILL_COUNT; i++)
        {
            _quickSkills.Add(i, null);
            m_QuickSkills.Add(i, null);
        }
        for (int i = 0; i <= SkillModel.QUICK_SKILL_COUNT; i++)
        {
@@ -117,7 +111,7 @@
                }
                if (!GetFilterPlayerSkill(PlayerDatas.Instance.baseData.Job).Contains(data.id))
                {
                    _quickSkills[i] = data;
                    m_QuickSkills[i] = data;
                }
            }
        }
@@ -139,7 +133,10 @@
    public void UpdateQuickSkill(PlayerSkillData data)
    {
        if (!hasInitQuickSkill) return;
        if (!hasInitQuickSkill)
        {
            return;
        }
        bool fitter = GetFilterPlayerSkill(PlayerDatas.Instance.baseData.Job).Contains(data.id);
        if (fitter || data.skillCfg.FuncType != SkillModel.ACT_SKILL_TYPE)
        {
@@ -179,20 +176,20 @@
    public PlayerSkillData GetQuickSkillByPos(int pos)
    {
        PlayerSkillData data = null;
        _quickSkills.TryGetValue(pos, out data);
        m_QuickSkills.TryGetValue(pos, out data);
        return data;
    }
    public PlayerSkillData GetSKillById(int id)
    {
        PlayerSkillData data = null;
        _playerSkills.TryGetValue(id, out data);
        m_PlayerSkills.TryGetValue(id, out data);
        return data;
    }
    public Dictionary<int, PlayerSkillData> GetQuickSkills()
    {
        return _quickSkills;
        return m_QuickSkills;
    }
    public void SetQuickSkill(int pos, int id)
@@ -217,10 +214,10 @@
            return;
        }
        bool change = false;
        for (int i = 0; i < _quickSkills.Count; i++)
        for (int i = 0; i < m_QuickSkills.Count; i++)
        {
            PlayerSkillData skill = null;
            _quickSkills.TryGetValue(i, out skill);
            m_QuickSkills.TryGetValue(i, out skill);
            if (skill == null)
            {
                continue;
@@ -232,21 +229,21 @@
            else if (skill.id == id)
            {
                change = true;
                PlayerSkillData temp = _quickSkills[pos];
                _quickSkills[pos] = skill;
                _quickSkills[i] = temp;
                PlayerSkillData temp = m_QuickSkills[pos];
                m_QuickSkills[pos] = skill;
                m_QuickSkills[i] = temp;
                break;
            }
        }
        if (!change)
        {
            _quickSkills[pos] = data;
            m_QuickSkills[pos] = data;
        }
        for (int i = 0; i < _quickSkills.Count; i++)
        for (int i = 0; i < m_QuickSkills.Count; i++)
        {
            PlayerSkillData skill = null;
            _quickSkills.TryGetValue(i, out skill);
            m_QuickSkills.TryGetValue(i, out skill);
            if (skill != null)
            {
                string val = MathUtils.Convert10To64(skill.id);
@@ -266,15 +263,34 @@
    public Dictionary<int, PlayerSkillData> GetAllSkill()
    {
        return _playerSkills;
        return m_PlayerSkills;
    }
    public int ContainsQuickSkill(int id)
    {
        foreach (int pos in _quickSkills.Keys)
        foreach (int pos in m_QuickSkills.Keys)
        {
            if (_quickSkills[pos] == null) continue;
            if (_quickSkills[pos].id == id) return pos;
            if (m_QuickSkills[pos] == null) continue;
            if (m_QuickSkills[pos].id == id) return pos;
        }
        return -1;
    }
    public int ContainsQuickSkillType(int id)
    {
        foreach (int pos in m_QuickSkills.Keys)
        {
            if (m_QuickSkills[pos] == null)
            {
                continue;
            }
            var quickSkillConfig = SkillConfig.Get(m_QuickSkills[pos].id);
            var skillConfig = SkillConfig.Get(id);
            if (quickSkillConfig != null && skillConfig != null
                && quickSkillConfig.SkillTypeID == skillConfig.SkillTypeID)
            {
                return pos;
            }
        }
        return -1;
    }
@@ -305,7 +321,7 @@
    public PlayerSkillData GetSkillBySkillTypeID(int typeID)
    {
        foreach (var skill in _playerSkills.Values)
        foreach (var skill in m_PlayerSkills.Values)
        {
            if (skill.typeID == typeID)
                return skill;
@@ -316,7 +332,7 @@
    public int GetSkillCountByType(int _type)
    {
        var count = 0;
        foreach (var _skill in _playerSkills.Values)
        foreach (var _skill in m_PlayerSkills.Values)
        {
            if (_skill.skillCfg.FuncType == _type)
            {
@@ -328,8 +344,8 @@
    public void ClearSkillData()
    {
        _quickSkills.Clear();
        _playerSkills.Clear();
        m_QuickSkills.Clear();
        m_PlayerSkills.Clear();
    }
}