少年修仙传客户端代码仓库
client_Hale
2019-06-24 2051a2002b7a825a982c894205957d1b334e50d7
382 专精技能取等级逻辑修正
4个文件已修改
114 ■■■■■ 已修改文件
Fight/Actor/AI/HeroAI_Base.cs 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/HeroBehaviour.cs 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/Skill/AttackHandler.cs 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/Skill/SkillHelper.cs 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/AI/HeroAI_Base.cs
@@ -7,15 +7,6 @@
public abstract class HeroAI_Base
{
    private TreasureSkillModel m_TreasureSkillModel;
    private TreasureSkillModel treasureSkillModel
    {
        get
        {
            return m_TreasureSkillModel ?? (m_TreasureSkillModel = ModelCenter.Instance.GetModel<TreasureSkillModel>());
        }
    }
    public static byte stopReason = 0;
    private SkillModel m_SkillModel;
@@ -97,22 +88,12 @@
            if (_skill != null && _skill.skillInfo != null && _skill.skillInfo.config != null)
            {
                int _expertSkill = 0;
                bool _forceCast = false;
                if (treasureSkillModel.TryGetExpertSkill(_skill.id, out _expertSkill))
                SkillHelper.EffectValue _effectValue;
                if (SkillHelper.Instance.TryGetExpertSkillEvByMainSkillID(_skill.id, 4093, out _effectValue))
                {
                    int _level = 0;
                    if (treasureSkillModel.TryGetExpertActiveLevel(_expertSkill, out _level))
                    {
                        _expertSkill += (_level - 1);
                    }
                    SkillHelper.EffectValue _effectValue;
                    var _skillInfo = SkillHelper.Instance.Get(_expertSkill);
                    if (_skillInfo.effectValue.TryGetValue(4093, out _effectValue))
                    {
                        _forceCast = true;
                    }
                    _forceCast = true;
                }
                // 判断是否是被封禁的技能
Fight/Actor/HeroBehaviour.cs
@@ -114,21 +114,11 @@
        Skill _skill = m_Hero.SkillMgr.Get(skillID);
        int _expertSkill = 0;
        bool _forceCast = false;
        if (tsModel.TryGetExpertSkill(skillID, out _expertSkill))
        SkillHelper.EffectValue _effectValue;
        if (SkillHelper.Instance.TryGetExpertSkillEvByMainSkillID(_skill.id, 4093, out _effectValue))
        {
            int _level = 0;
            if (tsModel.TryGetExpertActiveLevel(_expertSkill, out _level))
            {
                _expertSkill += (_level - 1);
            }
            SkillHelper.EffectValue _effectValue;
            var _skillInfo = SkillHelper.Instance.Get(_expertSkill);
            if (_skillInfo.effectValue.TryGetValue(4093, out _effectValue))
            {
                _forceCast = true;
            }
            _forceCast = true;
        }
        if ((!StatusMgr.Instance.CanAttack(m_Hero.ServerInstID, _skill.skillInfo.config) || m_Hero.IsStun()) && !_forceCast)
Fight/Actor/Skill/AttackHandler.cs
@@ -365,17 +365,7 @@
                                       ref uint hurtValue,
                                       ref byte attackType)
    {
        SkillHelper.SkillInfo _exceptSkill = null;
        if (attacker is GA_Hero)
        {
            int _exceptSkillId = 0;
            if (TsSkillModel.TryGetExpertSkill(skill.skillInfo.config.SkillID, out _exceptSkillId))
            {
                _exceptSkill = SkillHelper.Instance.Get(_exceptSkillId);
            }
        }
        SkillHelper.SkillInfo _exceptSkill = SkillHelper.Instance.GetExpertSkill(skill.id);
        int _hitRate = 1;
        int _missRate = 0;
@@ -391,7 +381,6 @@
        bool _isZhuxianHit = false;
        SkillHelper.EffectValue _effectValue;
        SkillHelper.SkillInfo _skillInfo;
        float _aAtkSkillPer = 0;
        int _atkSkillValue = 0;
@@ -784,8 +773,6 @@
                }
            }
            #endregion
        }
@@ -935,14 +922,10 @@
        int _rate = 0;
        int _exceptSkillId = 0;
        if (TsSkillModel.TryGetExpertSkill(skillId, out _exceptSkillId))
        _skillInfo = SkillHelper.Instance.GetExpertSkill(skillId);
        if (_skillInfo.effectValue.TryGetValue(4081, out _effectValue))
        {
            var _esSkillInfo = SkillHelper.Instance.Get(_exceptSkillId);
            if (_esSkillInfo.effectValue.TryGetValue(4081, out _effectValue))
            {
                _rate += _effectValue.value1;
            }
            _rate += _effectValue.value1;
        }
        var _dict = StatusMgr.Instance.ZhongJiDict;
@@ -1025,12 +1008,7 @@
        SkillHelper.SkillInfo _exceptSkill = null;
        if (attacker is GA_Hero)
        {
            int _exceptSkillId = 0;
            if (TsSkillModel.TryGetExpertSkill(skillInfo.config.SkillID, out _exceptSkillId))
            {
                _exceptSkill = SkillHelper.Instance.Get(_exceptSkillId);
            }
            _exceptSkill = SkillHelper.Instance.GetExpertSkill(skillInfo.config.SkillID);
        }
        #region 伤害增加
Fight/Actor/Skill/SkillHelper.cs
@@ -1,4 +1,4 @@
using System;
using Snxxz.UI;
using System.Collections.Generic;
using UnityEngine;
@@ -9,10 +9,49 @@
[XLua.LuaCallCSharp]
public class SkillHelper : Singleton<SkillHelper>
{
    private TreasureSkillModel m_TreasureSkillModel;
    private TreasureSkillModel treasureSkillModel
    {
        get
        {
            return m_TreasureSkillModel ?? (m_TreasureSkillModel = ModelCenter.Instance.GetModel<TreasureSkillModel>());
        }
    }
    private Dictionary<int, SkillInfo> m_SkillInfoDict;
    private Dictionary<int, List<SkillInfo>> m_SkillToSpSkill;
    private Dictionary<int, int> m_SkillTypeIDToSkillID;
    public SkillInfo GetExpertSkill(int mainSkillId)
    {
        int _expertSkillID = 0;
        if (treasureSkillModel.TryGetExpertSkill(mainSkillId, out _expertSkillID))
        {
            int _level = 0;
            if (treasureSkillModel.TryGetExpertActiveLevel(_expertSkillID, out _level))
            {
                _expertSkillID += (_level - 1);
            }
            return SkillHelper.Instance.Get(_expertSkillID);
        }
        return null;
    }
    public bool TryGetExpertSkillEvByMainSkillID(int mainSkillId, int evID, out EffectValue ev)
    {
        var _skillInfo = GetExpertSkill(mainSkillId);
        if (_skillInfo != null)
        {
            if (_skillInfo.effectValue.ContainsKey(evID))
            {
                ev = _skillInfo.effectValue[evID];
                return true;
            }
        }
        ev = default(EffectValue);
        return false;
    }
    public void Init()
    {
        if (m_SkillInfoDict == null)