少年修仙传客户端代码仓库
client_Hale
2019-06-22 115e2385f77aee90c034d2d8d2d559b1b4cf58ad
382 控制状态下可使用技能
6个文件已修改
100 ■■■■ 已修改文件
Fight/Actor/AI/HeroAI_Base.cs 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/AI/HeroAI_KillUntilDie.cs 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/HeroBehaviour.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/Status/StatusMgr.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GA_Hero.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainWin/MainWinSkillController.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/AI/HeroAI_Base.cs
@@ -7,6 +7,15 @@
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;
@@ -88,8 +97,26 @@
            if (_skill != null && _skill.skillInfo != null && _skill.skillInfo.config != null)
            {
                int _expertSkill = 0;
                bool _forceCast = false;
                if (treasureSkillModel.TryGetExpertSkill(_skill.id, out _expertSkill))
                {
                    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;
                    }
                }
                // 判断是否是被封禁的技能
                if (!StatusMgr.Instance.CanAttack(_hero.ServerInstID, _skill.skillInfo.config))
                if (!StatusMgr.Instance.CanAttack(_hero.ServerInstID, _skill.skillInfo.config) && !_forceCast)
                {
                    return _skill;
                }
@@ -141,12 +168,6 @@
        }
        if (StatusMgr.Instance.IsExist(_hero.ServerInstID, skillID))
        {
            return false;
        }
        // 判断是否是被封禁的技能
        if (!StatusMgr.Instance.CanAttack(_hero.ServerInstID, _skill.skillInfo.config))
        {
            return false;
        }
Fight/Actor/AI/HeroAI_KillUntilDie.cs
@@ -102,8 +102,7 @@
        GA_Hero _hero = PlayerDatas.Instance.hero;
        if (_hero == null
         || _hero.ActorInfo.serverDie
         || !_hero.CanCastSkill()
         || !_hero.CanCommonAtk())
         || !_hero.CanCastSkill())
        {
            return;
        }
@@ -175,6 +174,14 @@
            return;
        }
        if (_skill.skillInfo.config.FuncType == 8)
        {
            if (!_hero.CanCommonAtk())
            {
                return;
            }
        }
        bool _forceMove = _skill.skillInfo.soFile != null && _skill.skillInfo.soFile.forceMove;
        if (_target == null ||
Fight/Actor/HeroBehaviour.cs
@@ -114,7 +114,24 @@
        Skill _skill = m_Hero.SkillMgr.Get(skillID);
        if (!StatusMgr.Instance.CanAttack(m_Hero.ServerInstID, _skill.skillInfo.config))
        int _expertSkill = 0;
        bool _forceCast = false;
        if (tsModel.TryGetExpertSkill(skillID, out _expertSkill))
        {
            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;
            }
        }
        if ((!StatusMgr.Instance.CanAttack(m_Hero.ServerInstID, _skill.skillInfo.config) || m_Hero.IsStun()) && !_forceCast)
        {
            return;
        }
Fight/Actor/Status/StatusMgr.cs
@@ -652,18 +652,6 @@
    public bool CanAttack(uint sid, SkillConfig _config)
    {
        var _actorFight = GAMgr.Instance.GetBySID(sid) as GActorFight;
        SkillHelper.EffectValue _effectValue;
        SkillHelper.SkillInfo _skillInfo;
        if (_actorFight.SkillMgr.TryGetPassiveEffectValue(4093, out _effectValue, out _skillInfo))
        {
            if (_skillInfo.config.ExAttr1 == _config.SkillID)
            {
                return true;
            }
        }
        List<Status_Base> _list = null;
        if (m_StatusDict.TryGetValue(sid, out _list))
        {
Fight/GameActor/GA_Hero.cs
@@ -811,7 +811,6 @@
    {
        return !MapArea.IsInMapArea(CurMapArea, MapArea.E_Type.Safe)
            && !MapArea.IsInMapArea(CurMapArea, MapArea.E_Type.RebornSafe)
            && !IsStun()
            && !IsHurt()
            && !IsDaZuo()
            && State != E_ActorState.Roll
System/MainWin/MainWinSkillController.cs
@@ -228,6 +228,28 @@
            var forbid = !StatusMgr.Instance.CanCastSkill(PlayerDatas.Instance.baseData.PlayerID);
            for (int i = 0; i <= 8; i++)
            {
                if (placeSkillMap.ContainsKey(i))
                {
                    int _skillId = placeSkillMap[i];
                    var _tsModel = ModelCenter.Instance.GetModel<TreasureSkillModel>();
                    if (_tsModel.TryGetExpertSkill(_skillId, out _skillId))
                    {
                        int _level = 0;
                        if (_tsModel.TryGetExpertActiveLevel(_skillId, out _level))
                        {
                            _skillId += (_level - 1);
                        }
                        var _skillInfo = SkillHelper.Instance.Get(_skillId);
                        SkillHelper.EffectValue _effectValue;
                        if (_skillInfo.effectValue.TryGetValue(4093, out _effectValue))
                        {
                            if (forbid)
                            {
                                continue;
                            }
                        }
                    }
                }
                var skillForbid = GetSkillForbid(i);
                skillForbid.value = forbid;
            }