少年修仙传客户端代码仓库
client_Hale
2019-03-05 fad742e2225d9438a3ec4240b973df313e6a98c3
3042 【BUG】【2.0】主动技能升级后不能使用
2个文件已修改
89 ■■■■ 已修改文件
Fight/Actor/HeroBehaviour.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/Skill/SkillHelper.cs 87 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/HeroBehaviour.cs
@@ -362,7 +362,7 @@
        skill.hitTargetList.Clear();
        skill.hitClientBattleTargetList.Clear();
        SoSkill _soSkill = ScriptableObjectLoader.LoadSoSkill(skill.id);
        SoSkill _soSkill = ScriptableObjectLoader.LoadSoSkill(skill.skillInfo.config.SkillTypeID);
        if (_soSkill == null)
        {
            DebugEx.LogWarningFormat("技能: {0} 没有配置SoSkill文件, 将没有范围检测能力.", skill.id);
Fight/Actor/Skill/SkillHelper.cs
@@ -8,7 +8,7 @@
/// </summary>
[XLua.LuaCallCSharp]
public class SkillHelper : Singleton<SkillHelper>
{
    private Dictionary<int, SkillInfo> m_SkillInfoDict;
    private Dictionary<int, List<SkillInfo>> m_SkillToSpSkill;
@@ -119,49 +119,8 @@
        {
            effectValue = new Dictionary<int, EffectValue>();
            soFile = ScriptableObjectLoader.LoadSoSkill(skillID);
            if (soFile)
            {
                HasHitEvent = soFile.animationEventList.Count > 0;
                if (HasHitEvent)
                {
                    HasHitEvent = false;
                    SoConfigBase _soConfig = null;
                    int _param;
                    int _id;
                    SoSkill.E_AttackType _type;
                    for (int i = 0; i < soFile.animationEventList.Count; ++i)
                    {
                        if (soFile.animationEventList[i].frameEventType != E_FrameEventType.OnSkillEvent)
                        {
                            continue;
                        }
                        _soConfig = null;
                        _param = soFile.animationEventList[i].intParam;
                        _id = SoSkill.GetFrameEventId(_param);
                        _type = SoSkill.GetAttactType(_param);
                        if (_type == SoSkill.E_AttackType.Sweep)
                        {
                            _soConfig = ScriptableObjectLoader.LoadSoSweepHit(_id);
                        }
                        else if (_type == SoSkill.E_AttackType.FlyObject)
                        {
                            _soConfig = ScriptableObjectLoader.LoadSoFlyObject(_id);
                        }
                        if (_soConfig != null && _soConfig.floodPercent != 0)
                        {
                            HasHitEvent = true;
                            break;
                        }
                    }
                }
            }
            config = SkillConfig.Get(skillID);
            if (config != null)
            {
                if (config.Effect1 > 0)
@@ -225,6 +184,48 @@
                    effectValue[config.Effect5] = _effectValue;
                }
            }
            soFile = ScriptableObjectLoader.LoadSoSkill(config.SkillTypeID);
            if (soFile)
            {
                HasHitEvent = soFile.animationEventList.Count > 0;
                if (HasHitEvent)
                {
                    HasHitEvent = false;
                    SoConfigBase _soConfig = null;
                    int _param;
                    int _id;
                    SoSkill.E_AttackType _type;
                    for (int i = 0; i < soFile.animationEventList.Count; ++i)
                    {
                        if (soFile.animationEventList[i].frameEventType != E_FrameEventType.OnSkillEvent)
                        {
                            continue;
                        }
                        _soConfig = null;
                        _param = soFile.animationEventList[i].intParam;
                        _id = SoSkill.GetFrameEventId(_param);
                        _type = SoSkill.GetAttactType(_param);
                        if (_type == SoSkill.E_AttackType.Sweep)
                        {
                            _soConfig = ScriptableObjectLoader.LoadSoSweepHit(_id);
                        }
                        else if (_type == SoSkill.E_AttackType.FlyObject)
                        {
                            _soConfig = ScriptableObjectLoader.LoadSoFlyObject(_id);
                        }
                        if (_soConfig != null && _soConfig.floodPercent != 0)
                        {
                            HasHitEvent = true;
                            break;
                        }
                    }
                }
            }
        }
    }