少年修仙传客户端代码仓库
client_Hale
2019-05-22 8c81100c8ff5d2e90dabcafbec59a5d45f9841c8
382 战斗效果值实现
18个文件已修改
349 ■■■■■ 已修改文件
Core/NetworkPackage/DTCFile/ServerPack/H06_PlayerVsNPC/DTC0614_tagUseSkillPos.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/ResModule/AnimatorControllerLoader.cs 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/ResModule/InstanceResourcesLoader.cs 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/AI/HeroAI_Base.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/HeroBehaviour.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/Skill/AttackHandler.cs 141 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/Skill/FlyObject/FlyObject.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/Skill/SkillManager.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/State/SMB/STM_BaseAttack.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/Status/StatusMgr.cs 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GA_Guard.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GActorFight.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GActorNpcFight.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GActorNpcNoFight.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GActorPlayerBase.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Stage/Dungeon/DungeonStage.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/StatusMgrWrap.cs 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/StatusMgrWrap.cs.meta 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/H06_PlayerVsNPC/DTC0614_tagUseSkillPos.cs
@@ -283,7 +283,7 @@
                            ObjID = _sTarget.ObjID,
                            clientInstID = GAMgr.Instance.GetCIDBySID(_cTarget.ServerInstID),
                            ObjType = _sTarget.ObjType,
                            HurtHP = (uint)(_cTarget.ActorInfo.RealHp - (_sTarget.CurHP + _sTarget.CurHPEx * GActorInfo.FullHp)),
                            HurtHP = _sTarget.HurtHP,
                            CurHP = _sTarget.CurHP,
                            AttackType = _sTarget.AttackType
                        };
@@ -721,7 +721,7 @@
                    ObjID = _sTarget.ObjID,
                    clientInstID = GAMgr.Instance.GetCIDBySID(_cTarget.ServerInstID),
                    ObjType = _sTarget.ObjType,
                    HurtHP = (uint)(_cTarget.ActorInfo.RealHp - (_sTarget.CurHP + _sTarget.CurHPEx * GActorInfo.FullHp)),
                    HurtHP = _sTarget.HurtHP,
                    CurHP = _sTarget.CurHP,
                    AttackType = _sTarget.AttackType
                };
Core/ResModule/AnimatorControllerLoader.cs
@@ -5,9 +5,9 @@
using UnityEditor;
#endif
[XLua.LuaCallCSharp]
public class AnimatorControllerLoader
{
    public static readonly string controllerSuffix = "AnimatorController_";
    public static readonly string controllerUISuffix = "AnimatorController_UI_";
    public static readonly string controllerShowSuffix = "AnimatorController_Show_";
@@ -51,9 +51,32 @@
        return _animationClip;
    }
    public static RuntimeAnimatorController LoadDefaultMobAnimatorController_Fight()
    {
        return AnimatorControllerLoader.LoadMobController(AnimatorControllerLoader.controllerSuffix,
                                                          GeneralDefine.ModeDefaultConfig[1][1].Replace("Prefab_Race_", ""));
    }
    public static RuntimeAnimatorController LoadDefaultMobAnimatorController_Func()
    {
        return AnimatorControllerLoader.LoadMobController(AnimatorControllerLoader.controllerSuffix,
                                                          GeneralDefine.ModeDefaultConfig[0][1].Replace("Prefab_Race_", ""));
    }
    public static RuntimeAnimatorController LoadDefaultMobAnimatorController_Horse()
    {
        return AnimatorControllerLoader.LoadMobController(AnimatorControllerLoader.controllerSuffix,
                                                          GeneralDefine.ModeDefaultConfig[3][1].Replace("Prefab_Horse_", ""));
    }
    public static RuntimeAnimatorController LoadDefaultMobAnimatorController_Pet()
    {
        return AnimatorControllerLoader.LoadMobController(AnimatorControllerLoader.controllerSuffix,
                                                          GeneralDefine.ModeDefaultConfig[2][1].Replace("Prefab_Race_", ""));
    }
    public static RuntimeAnimatorController Load(string suffix, int id)
    {
        RuntimeAnimatorController _controller = null;
        ModelResConfig _modelRes = ModelResConfig.Get(id);
        string _name = _modelRes.ResourcesName;
        if (_name.IndexOf('/') != -1)
@@ -61,40 +84,7 @@
            _name = _name.Substring(0, _modelRes.ResourcesName.IndexOf('/'));
        }
        if (AssetSource.mobFromEditor)
        {
#if UNITY_EDITOR
            string _resourcesPath = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath,
                                                          "mob/",
                                                          _name,
                                                          "/",
                                                          suffix,
                                                          _name,
                                                          ".controller");
            _controller = AssetDatabase.LoadAssetAtPath<RuntimeAnimatorController>(_resourcesPath);
#endif
        }
        else
        {
            string _bundleName = StringUtility.Contact(ResourcesPath.MOB_FOLDER_NAME,
                                                       ResourcesPath.MOB_SUFFIX,
                                                       _name);
            string _assetName = StringUtility.Contact(suffix, _name);
            AssetInfo _assetInfo = new AssetInfo(_bundleName, _assetName);
            _controller = AssetBundleUtility.Instance.Sync_LoadAsset(_assetInfo) as RuntimeAnimatorController;
        }
        if (_controller == null)
        {
            DebugEx.LogErrorFormat("AnimatorControllerLoader.Load() => 加载不到资源: {0}_{1}.", suffix, _name);
        }
        return _controller;
        return LoadMobController(suffix, _name);
    }
    public static RuntimeAnimatorController LoadMobController(string suffix, string _name)
Core/ResModule/InstanceResourcesLoader.cs
@@ -5,6 +5,7 @@
using UnityEditor;
#endif
[XLua.LuaCallCSharp]
public class InstanceResourcesLoader
{
    public static readonly string raceSuffix = "Prefab_Race_";
@@ -53,30 +54,6 @@
        }
        return LoadModelPrefab(raceSuffix, _m.MODE);
    }
    public static RuntimeAnimatorController LoadDefaultMobAnimatorController_Fight()
    {
        return AnimatorControllerLoader.LoadMobController(AnimatorControllerLoader.controllerSuffix,
                                                          GeneralDefine.ModeDefaultConfig[1][1].Replace("Prefab_Race_", ""));
    }
    public static RuntimeAnimatorController LoadDefaultMobAnimatorController_Func()
    {
        return AnimatorControllerLoader.LoadMobController(AnimatorControllerLoader.controllerSuffix,
                                                          GeneralDefine.ModeDefaultConfig[0][1].Replace("Prefab_Race_", ""));
    }
    public static RuntimeAnimatorController LoadDefaultMobAnimatorController_Horse()
    {
        return AnimatorControllerLoader.LoadMobController(AnimatorControllerLoader.controllerSuffix,
                                                          GeneralDefine.ModeDefaultConfig[3][1].Replace("Prefab_Horse_", ""));
    }
    public static RuntimeAnimatorController LoadDefaultMobAnimatorController_Pet()
    {
        return AnimatorControllerLoader.LoadMobController(AnimatorControllerLoader.controllerSuffix,
                                                          GeneralDefine.ModeDefaultConfig[2][1].Replace("Prefab_Race_", ""));
    }
    public static GameObject LoadDefaultFightNPC()
Fight/Actor/AI/HeroAI_Base.cs
@@ -89,7 +89,7 @@
            if (_skill != null && _skill.skillInfo != null && _skill.skillInfo.config != null)
            {
                // 判断是否是被封禁的技能
                if (!StatusMgr.Instance.CanAttack(_hero.ServerInstID, _skill.skillInfo.config.SkillOfSeries))
                if (!StatusMgr.Instance.CanAttack(_hero.ServerInstID, _skill.skillInfo.config))
                {
                    return _skill;
                }
@@ -146,7 +146,7 @@
        }
        // 判断是否是被封禁的技能
        if (!StatusMgr.Instance.CanAttack(_hero.ServerInstID, _skill.skillInfo.config.SkillOfSeries))
        if (!StatusMgr.Instance.CanAttack(_hero.ServerInstID, _skill.skillInfo.config))
        {
            return false;
        }
Fight/Actor/HeroBehaviour.cs
@@ -104,7 +104,7 @@
        Skill _skill = m_Hero.SkillMgr.Get(skillID);
        if (!StatusMgr.Instance.CanAttack(m_Hero.ServerInstID, _skill.skillInfo.config.SkillOfSeries))
        if (!StatusMgr.Instance.CanAttack(m_Hero.ServerInstID, _skill.skillInfo.config))
        {
            return;
        }
@@ -299,7 +299,7 @@
        skillId = m_Hero.GetCommonSkillID(curComAtkIndex);
        _skill = m_Hero.SkillMgr.Get(skillId);
        if (!StatusMgr.Instance.CanAttack(m_Hero.ServerInstID, _skill.skillInfo.config.SkillOfSeries))
        if (!StatusMgr.Instance.CanAttack(m_Hero.ServerInstID, _skill.skillInfo.config))
        {
            return -1;
        }
Fight/Actor/Skill/AttackHandler.cs
@@ -11,6 +11,7 @@
    public static void HandlerAttackTarget(GActorFight attacker,
                                           GActorFight target,
                                           int hurtValue,
                                           int realHurtValue,
                                           byte attackType,
                                           int skillID,
                                           int soConfigID,
@@ -132,7 +133,13 @@
            if (CheckPull(attacker, target, soConfig.bodyControlId))
            {
                target.StartBeatBack(attacker.ServerInstID, soConfig.bodyControlId, MathUtility.ForwardXZ(target.Pos, attacker.Pos), (HurtAttackType)attackType);
                float _extDis = 0;
                SkillHelper.EffectValue _effectValue;
                if (_skill.skillInfo.effectValue.TryGetValue(4015, out _effectValue))
                {
                    _extDis += _effectValue.value1 * .5f;
                }
                target.StartBeatBack(attacker.ServerInstID, soConfig.bodyControlId, MathUtility.ForwardXZ(target.Pos, attacker.Pos), (HurtAttackType)attackType, _extDis);
            }
        }
@@ -234,7 +241,7 @@
                    if (_doReduceHp)
                    {
                        target.ActorInfo.ReduceHp((uint)hurtValue);
                        target.ActorInfo.ReduceHp((uint)realHurtValue);
                    }
                    if (target.ServerInstID == PlayerDatas.Instance.baseData.PlayerID)
@@ -348,6 +355,7 @@
        bool _isZhuxianHit = false;
        SkillHelper.EffectValue _effectValue;
        SkillHelper.SkillInfo _skillInfo;
        float _aAtkSkillPer = 0;
        int _atkSkillValue = 0;
@@ -550,7 +558,7 @@
        }
        #region 4094,4507 增加暴击概率
        if (skill.skillInfo.effectValue.TryGetValue(4094, out _effectValue))
        if (attacker.SkillMgr.TryGetPassiveEffectValue(4094, out _effectValue, out _skillInfo))
        {
            bool _vaild = true;
            if (_effectValue.value2 != 0)
@@ -566,7 +574,7 @@
            }
        }
        if (skill.skillInfo.effectValue.TryGetValue(4507, out _effectValue))
        if (StatusMgr.Instance.TryGetSkillEffectValue(attacker.ServerInstID, 4507, out _effectValue))
        {
            bool _vaild = true;
            if (_effectValue.value2 == 1)
@@ -586,12 +594,35 @@
            }
            if (_vaild)
            {
                if (_vaild)
                {
                    _aSuperHitRate += _effectValue.value1;
                }
                _aSuperHitRate += _effectValue.value1;
            }
        }
        if (StatusMgr.Instance.TryGetSkillEffectValue(attacker.ServerInstID, 4526, out _effectValue))
        {
            bool _vaild = true;
            if (_effectValue.value2 == 1)
            {
                if (attacker.SelectTarget == null
                 || attacker.SelectTarget.ServerInstID != target.ServerInstID)
                {
                    _vaild = false;
                }
            }
            if (_effectValue.value3 == 1)
            {
                if (skill.skillInfo.config.FuncType != (int)E_SkillFuncType.NormalAttack
                 && skill.skillInfo.config.FuncType != (int)E_SkillFuncType.FaBaoActiveSkill)
                {
                    _vaild = false;
                }
            }
            if (_vaild)
            {
                _aZhuXianHitRate += _effectValue.value1;
            }
        }
        #endregion
        _isMiss = IsMiss(_hitRate, _missRate);
@@ -685,7 +716,13 @@
                }
            }
            if (attacker.SkillMgr.TryGetPassiveEffectValue(4083, out _effectValue))
            if (attacker.SkillMgr.TryGetPassiveEffectValue(4075, out _effectValue, out _skillInfo))
            {
                float _val = (PlayerDatas.Instance.extersion.battleValEx1 - 10000) * _effectValue.value1;
                _superHitAdd += _val;
            }
            if (attacker.SkillMgr.TryGetPassiveEffectValue(4083, out _effectValue, out _skillInfo))
            {
                bool _vaild = true;
                if (_effectValue.value2 == 1)
@@ -717,7 +754,7 @@
         || skill.skillInfo.config.HurtType == 0)
        {
            // 处理本身的技能
            CalculateSkillEffect(attacker, target, skill.skillInfo, ref _aDamagePer, ref _aAtkSkillPer, ref _atkSkillValue, ref _aIceAtk, ref _aFinalHurt, ref _superHitAdd, _isCrit);
            CalculateSkillEffect(attacker, target, skill.skillInfo, ref _aDamagePer, ref _aAtkSkillPer, ref _atkSkillValue, ref _aIceAtk, ref _aFinalHurt, ref _superHitAdd, ref _aDamagePVE, _isCrit);
            // 处理sp技能
            List<SkillHelper.SkillInfo> _spSkillList = SkillHelper.Instance.GetSpSkill(skill.id);
@@ -726,7 +763,7 @@
            {
                for (int i = 0; i < _spSkillList.Count; ++i)
                {
                    CalculateSkillEffect(attacker, target, _spSkillList[i], ref _aDamagePer, ref _aAtkSkillPer, ref _atkSkillValue, ref _aIceAtk, ref _aFinalHurt, ref _superHitAdd, _isCrit);
                    CalculateSkillEffect(attacker, target, _spSkillList[i], ref _aDamagePer, ref _aAtkSkillPer, ref _atkSkillValue, ref _aIceAtk, ref _aFinalHurt, ref _superHitAdd, ref _aDamagePVE, _isCrit);
                }
            }
        }
@@ -852,7 +889,8 @@
        }
        SkillHelper.EffectValue _effectValue;
        if (_hero.SkillMgr.TryGetPassiveEffectValue(4081, out _effectValue))
        SkillHelper.SkillInfo _skillInfo;
        if (_hero.SkillMgr.TryGetPassiveEffectValue(4081, out _effectValue, out _skillInfo))
        {
            if (_effectValue.value2 == 1)
            {
@@ -897,16 +935,20 @@
        return actor.ActorInfo.RealHp * 1f / actor.ActorInfo.RealMaxHp;
    }
    private static void CalculateSkillEffect(GActorFight attacker, GActorFight target, SkillHelper.SkillInfo skillInfo,
    private static void CalculateSkillEffect(GActorFight attacker,
                                             GActorFight target,
                                             SkillHelper.SkillInfo skillInfo,
                                             ref int _aDamagePer,
                                             ref float _aAtkSkillPer,
                                             ref int _atkSkillValue,
                                             ref int _aIceAtk,
                                             ref int _aFinalHurt,
                                             ref float _aSuperHitAdd,
                                             ref int _aDamagePVE,
                                             bool _isCrit)
    {
        SkillHelper.EffectValue _effectValue;
        SkillHelper.SkillInfo _skillInfo;
        #region 伤害增加
        if (skillInfo.effectValue.TryGetValue(1062, out _effectValue))
@@ -931,7 +973,39 @@
        if (attacker is GA_Hero)
        {
            if (attacker.SkillMgr.TryGetPassiveEffectValue(4086, out _effectValue))
            if (attacker.SkillMgr.TryGetPassiveEffectValue(4102, out _effectValue, out _skillInfo))
            {
                int _val = _effectValue.value1;
                int _needCount = _effectValue.value2;
                bool _valid = true;
                if (attacker.SkillMgr.TryGetPassiveEffectValue(4092, out _effectValue, out _skillInfo))
                {
                    if (_effectValue.value2 == 0)
                    {
                        if (PlayerDatas.Instance.baseData.yinjiCount != _needCount)
                        {
                            _valid = false;
                        }
                    }
                    else if (_effectValue.value2 == 1)
                    {
                        if (PlayerDatas.Instance.baseData.yinjiCount == 0
                         || PlayerDatas.Instance.baseData.yinjiCount < _effectValue.value1)
                        {
                            _valid = false;
                        }
                    }
                }
                if (_valid)
                {
                    if (PlayerDatas.Instance.baseData.yinjiCount > _needCount)
                    {
                        _aDamagePVE += _val;
                    }
                }
            }
            if (attacker.SkillMgr.TryGetPassiveEffectValue(4086, out _effectValue, out _skillInfo))
            {
                bool _vaild = true;
                if (_effectValue.value3 == 1)
@@ -951,7 +1025,7 @@
                }
            }
            if (attacker.SkillMgr.TryGetPassiveEffectValue(4087, out _effectValue))
            if (attacker.SkillMgr.TryGetPassiveEffectValue(4087, out _effectValue, out _skillInfo))
            {
                if (PlayerDatas.Instance.baseData.yinjiCount > _effectValue.value2)
                {
@@ -959,12 +1033,12 @@
                }
            }
            if (attacker.SkillMgr.TryGetPassiveEffectValue(4088, out _effectValue))
            if (attacker.SkillMgr.TryGetPassiveEffectValue(4088, out _effectValue, out _skillInfo))
            {
                int _per = _effectValue.value1;
                int _needCount = _effectValue.value2;
                bool _valid = true;
                if (attacker.SkillMgr.TryGetPassiveEffectValue(4092, out _effectValue))
                if (attacker.SkillMgr.TryGetPassiveEffectValue(4092, out _effectValue, out _skillInfo))
                {
                    if (_effectValue.value2 == 0)
                    {
@@ -990,7 +1064,7 @@
                }
            }
            if (attacker.SkillMgr.TryGetPassiveEffectValue(4015, out _effectValue))
            if (attacker.SkillMgr.TryGetPassiveEffectValue(4015, out _effectValue, out _skillInfo))
            {
                if (target.ActorInfo.status4012.ContainsKey((byte)_effectValue.value2))
                {
@@ -998,6 +1072,15 @@
                    if (StatusMgr.Instance.IsBurning(target.ServerInstID, _selfSID))
                    {
                        _aAtkSkillPer += _effectValue.value1;
                        if (attacker.SkillMgr.TryGetPassiveEffectValue(4538, out _effectValue, out _skillInfo))
                        {
                            _aDamagePVE += _effectValue.value1;
                        }
                        if (attacker.SkillMgr.TryGetPassiveEffectValue(4002, out _effectValue, out _skillInfo))
                        {
                            _aDamagePVE += _effectValue.value1;
                        }
                    }
                }
            }
@@ -1014,13 +1097,13 @@
                }
            }
            if (attacker.SkillMgr.TryGetPassiveEffectValue(4098, out _effectValue))
            if (attacker.SkillMgr.TryGetPassiveEffectValue(4098, out _effectValue, out _skillInfo))
            {
                var _skillInfo = SkillHelper.Instance.Get(_effectValue.value2);
                if (_skillInfo != null)
                var _skillInfo1 = SkillHelper.Instance.Get(_effectValue.value2);
                if (_skillInfo1 != null)
                {
                    SkillHelper.EffectValue _tmpEffectValue;
                    if (_skillInfo.effectValue.TryGetValue(4012, out _tmpEffectValue))
                    if (_skillInfo1.effectValue.TryGetValue(4012, out _tmpEffectValue))
                    {
                        if (target.ActorInfo.status4012.ContainsKey((byte)_tmpEffectValue.value1))
                        {
@@ -1033,7 +1116,7 @@
                }
            }
            if (attacker.SkillMgr.TryGetPassiveEffectValue(4096, out _effectValue))
            if (attacker.SkillMgr.TryGetPassiveEffectValue(4096, out _effectValue, out _skillInfo))
            {
                if (StatusMgr.Instance.IsExist(target.ServerInstID, _effectValue.value3))
                {
@@ -1044,7 +1127,7 @@
        }
        // 4005 概率增加攻击(技能)伤害万分率
        if (skillInfo.effectValue.TryGetValue(4005, out _effectValue))
        if (attacker.SkillMgr.TryGetPassiveEffectValue(4005, out _effectValue, out _skillInfo))
        {
            if (Random.Range(0, 10000) < _effectValue.value2)
            {
@@ -1059,7 +1142,7 @@
        }
        // 4035 增加技能伤害万分率
        if (skillInfo.effectValue.TryGetValue(4035, out _effectValue))
        if (attacker.SkillMgr.TryGetPassiveEffectValue(4035, out _effectValue, out _skillInfo))
        {
            bool _isValid = true;
            var _mapConfig = MapConfig.Get(PlayerDatas.Instance.baseData.MapID);
@@ -1085,7 +1168,7 @@
        }
        // 4011 暴击时增加技能伤害
        if (skillInfo.effectValue.TryGetValue(4011, out _effectValue))
        if (attacker.SkillMgr.TryGetPassiveEffectValue(4011, out _effectValue, out _skillInfo))
        {
            if (_isCrit)
            {
@@ -1101,7 +1184,7 @@
        }
        // 4015 目标处于XX状态提高技能伤害
        if (skillInfo.effectValue.TryGetValue(4015, out _effectValue))
        if (attacker.SkillMgr.TryGetPassiveEffectValue(4015, out _effectValue, out _skillInfo))
        {
            if (target.ActorInfo.GetStatusCount((byte)_effectValue.value2, attacker.ServerInstID) > 0)
            {
@@ -1117,7 +1200,7 @@
        }
        // 4025 攻击附加真实伤害
        if (skillInfo.effectValue.TryGetValue(4025, out _effectValue))
        if (attacker.SkillMgr.TryGetPassiveEffectValue(4025, out _effectValue, out _skillInfo))
        {
            _aIceAtk += _effectValue.value1;
@@ -1192,7 +1275,7 @@
        #region 暴击伤害增加
        // 4007 暴击时增加暴击值, 增加暴击值万分率, 虚要判断自己身上是否有配置的buff
        if (skillInfo.effectValue.TryGetValue(4007, out _effectValue))
        if (attacker.SkillMgr.TryGetPassiveEffectValue(4007, out _effectValue, out _skillInfo))
        {
            bool _condition = true;
Fight/Actor/Skill/FlyObject/FlyObject.cs
@@ -149,8 +149,8 @@
            if (_chkDistSqrt < _chkRange * _chkRange)
            {
                int _hurtValue = (int)(m_Config.floodPercent * Constants.F_DELTA * m_HurtClientList[i].HurtHP);
                AttackHandler.HandlerAttackTarget(m_Owner, _target, _hurtValue, m_HurtClientList[i].AttackType, m_InitInfo.skillId, m_InitInfo.configId, m_Config, _target.ActorInfo.serverDie);
                int _realHurtValue = (int)((_target.ActorInfo.RealHp - m_HurtClientList[i].CurHP) * (m_Config.floodPercent * Constants.F_DELTA));
                AttackHandler.HandlerAttackTarget(m_Owner, _target, _hurtValue, _realHurtValue, m_HurtClientList[i].AttackType, m_InitInfo.skillId, m_InitInfo.configId, m_Config, _target.ActorInfo.serverDie);
                m_HasHitTargetIDList.Add(m_HurtClientList[i].clientInstID);
                m_IdToLastHitTime[_target.ClientInstID] = Time.time;
@@ -190,8 +190,9 @@
            if (_chkDistSqrt < _chkRange * _chkRange)
            {
                int _hurtValue = (int)(m_Config.floodPercent * Constants.F_DELTA * m_HurtServerList[i].HurtHP);
                int _realHurtValue = (int)((_target.ActorInfo.RealHp - m_HurtClientList[i].CurHP) * (m_Config.floodPercent * Constants.F_DELTA));
                AttackHandler.HandlerAttackTarget(m_Owner, _target, _hurtValue, m_HurtServerList[i].AttackType, m_InitInfo.skillId, m_InitInfo.configId, m_Config, _target.ActorInfo.serverDie);
                AttackHandler.HandlerAttackTarget(m_Owner, _target, _hurtValue, _realHurtValue, m_HurtServerList[i].AttackType, m_InitInfo.skillId, m_InitInfo.configId, m_Config, _target.ActorInfo.serverDie);
                m_HasHitTargetIDList.Add(m_HurtServerList[i].clientInstID);
                m_IdToLastHitTime[_target.ClientInstID] = Time.time;
Fight/Actor/Skill/SkillManager.cs
@@ -43,7 +43,8 @@
        m_PassiveSkill = new List<int>();
    }
    public bool TryGetPassiveEffectValue(int id, out SkillHelper.EffectValue effectValue)
    public bool TryGetPassiveEffectValue(int id, out SkillHelper.EffectValue effectValue,
                                                 out SkillHelper.SkillInfo skill)
    {
        SkillHelper.SkillInfo _skill;
        foreach (var _id in m_PassiveSkill)
@@ -51,10 +52,12 @@
            _skill = SkillHelper.Instance.Get(_id);
            if (_skill.effectValue.TryGetValue(id, out effectValue))
            {
                skill = _skill;
                return true;
            }
        }
        effectValue = default(SkillHelper.EffectValue);
        skill = null;
        return false;
    }
Fight/Actor/State/SMB/STM_BaseAttack.cs
@@ -624,6 +624,7 @@
        GActorFight _target = null;
        int _hurtTotalValue = 0;
        int _realHurtValue = 0;
        m_NpcPosList.Clear();
@@ -650,10 +651,11 @@
                }
                _hurtTotalValue = (int)(m_CacheSkill.hurtServerList[i].HurtHP * _floodPercent);
                _realHurtValue = (int)((_target.ActorInfo.RealHp - m_CacheSkill.hurtServerList[i].CurHP) * _floodPercent);
                AttackHandler.HandlerAttackTarget(_fight,
                                                  _target,
                                                  _hurtTotalValue,
                                                  _realHurtValue,
                                                  m_CacheSkill.hurtServerList[i].AttackType,
                                                  m_CacheSkill.id,
                                                  id,
@@ -687,10 +689,12 @@
                }
                _hurtTotalValue = Mathf.CeilToInt(m_CacheSkill.hurtClientList[i].HurtHP * _floodPercent);
                _realHurtValue = (int)((_target.ActorInfo.RealHp - m_CacheSkill.hurtClientList[i].CurHP) * _floodPercent);
                AttackHandler.HandlerAttackTarget(_fight,
                                                  _target,
                                                  _hurtTotalValue,
                                                  _realHurtValue,
                                                  m_CacheSkill.hurtClientList[i].AttackType,
                                                  m_CacheSkill.id,
                                                  id,
@@ -719,8 +723,9 @@
                }
                _hurtTotalValue = (int)(m_CacheSkill.hurtClntFightNpcList[i].HurtHP * _floodPercent);
                _realHurtValue = (int)((_target.ActorInfo.RealHp - m_CacheSkill.hurtClientList[i].CurHP) * _floodPercent);
                AttackHandler.HandlerAttackTarget(_fight, _target, _hurtTotalValue,
                AttackHandler.HandlerAttackTarget(_fight, _target, _hurtTotalValue, _realHurtValue,
                                                  m_CacheSkill.hurtClntFightNpcList[i].AttackType,
                                                  m_CacheSkill.id, id, _sweepHit,
                                                  _target.ActorInfo.serverDie && m_IsLastHitFrame);
Fight/Actor/Status/StatusMgr.cs
@@ -583,14 +583,26 @@
        return true;
    }
    public bool CanAttack(uint sid, int skillSeries)
    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))
        {
            for (int i = 0; i < _list.Count; ++i)
            {
                if (!_list[i].CanAttack(skillSeries))
                if (!_list[i].CanAttack(_config.SkillOfSeries))
                {
                    return false;
                }
Fight/GameActor/GA_Guard.cs
@@ -331,7 +331,7 @@
                RuntimeAnimatorController _controller = null;
                if (m_LoadDefaultRes)
                {
                    _controller = InstanceResourcesLoader.LoadDefaultMobAnimatorController_Func();
                    _controller = AnimatorControllerLoader.LoadDefaultMobAnimatorController_Func();
                }
                else
                {
Fight/GameActor/GActorFight.cs
@@ -203,7 +203,7 @@
    private float m_LimitDistance;
    private float m_AddPer;
    public void StartBeatBack(uint attacker, int configID, Vector3 direction, HurtAttackType atkType = HurtAttackType.Normal)
    public void StartBeatBack(uint attacker, int configID, Vector3 direction, HurtAttackType atkType = HurtAttackType.Normal, float ExtDis = 0f)
    {
        SoBodyControl _config = ScriptableObjectLoader.LoadSoBodyControl(configID);
@@ -213,7 +213,7 @@
        }
        m_AttackerSID = attacker;
        m_LimitDistance = _config.limitDistance;
        m_LimitDistance = _config.limitDistance + ExtDis;
        m_PushOrPull = _config.pushOrPull;
        if (!m_PushOrPull)
Fight/GameActor/GActorNpcFight.cs
@@ -551,11 +551,11 @@
            {
                if (this is GA_Pet)
                {
                    _controller = InstanceResourcesLoader.LoadDefaultMobAnimatorController_Pet();
                    _controller = AnimatorControllerLoader.LoadDefaultMobAnimatorController_Pet();
                }
                else
                {
                    _controller = InstanceResourcesLoader.LoadDefaultMobAnimatorController_Fight();
                    _controller = AnimatorControllerLoader.LoadDefaultMobAnimatorController_Fight();
                }
            }
            else
@@ -817,7 +817,7 @@
                RuntimeAnimatorController _controller = null;
                if (m_SheepIsDefaultNpc)
                {
                    _controller = InstanceResourcesLoader.LoadDefaultMobAnimatorController_Fight();
                    _controller = AnimatorControllerLoader.LoadDefaultMobAnimatorController_Fight();
                }
                else
                {
Fight/GameActor/GActorNpcNoFight.cs
@@ -218,7 +218,7 @@
                RuntimeAnimatorController _controller = null;
                if (m_LoadDefaultRes)
                {
                    _controller = InstanceResourcesLoader.LoadDefaultMobAnimatorController_Func();
                    _controller = AnimatorControllerLoader.LoadDefaultMobAnimatorController_Func();
                }
                else
                {
Fight/GameActor/GActorPlayerBase.cs
@@ -1665,7 +1665,7 @@
            RuntimeAnimatorController _controller = null;
            if (m_LoadDefaultHorse)
            {
                _controller = InstanceResourcesLoader.LoadDefaultMobAnimatorController_Horse();
                _controller = AnimatorControllerLoader.LoadDefaultMobAnimatorController_Horse();
            }
            else
            {
Fight/Stage/Dungeon/DungeonStage.cs
@@ -298,8 +298,6 @@
        }
    }
    private void HandleAutoFight()
    {
        DungeonModel _dungeonModel = ModelCenter.Instance.GetModel<DungeonModel>();
Lua/Gen/StatusMgrWrap.cs
@@ -21,7 +21,7 @@
        {
            ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
            System.Type type = typeof(StatusMgr);
            Utils.BeginObjectRegister(type, L, translator, 0, 23, 5, 5);
            Utils.BeginObjectRegister(type, L, translator, 0, 24, 5, 5);
            
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "Init", _m_Init);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "Request", _m_Request);
@@ -46,6 +46,7 @@
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "IsInvincible", _m_IsInvincible);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "IsInvisible", _m_IsInvisible);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "TryGetSkillEffectValue", _m_TryGetSkillEffectValue);
            Utils.RegisterFunc(L, Utils.METHOD_IDX, "IsBurning", _m_IsBurning);
            
            
            Utils.RegisterFunc(L, Utils.GETTER_IDX, "ZhongJiDict", _g_get_ZhongJiDict);
@@ -685,9 +686,9 @@
                
                {
                    uint _sid = LuaAPI.xlua_touint(L, 2);
                    int _skillSeries = LuaAPI.xlua_tointeger(L, 3);
                    SkillConfig __config = (SkillConfig)translator.GetObject(L, 3, typeof(SkillConfig));
                    
                        bool gen_ret = gen_to_be_invoked.CanAttack( _sid, _skillSeries );
                        bool gen_ret = gen_to_be_invoked.CanAttack( _sid, __config );
                        LuaAPI.lua_pushboolean(L, gen_ret);
                    
                    
@@ -792,6 +793,51 @@
            
        }
        
        [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
        static int _m_IsBurning(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
                StatusMgr gen_to_be_invoked = (StatusMgr)translator.FastGetCSObj(L, 1);
                int gen_param_count = LuaAPI.lua_gettop(L);
                if(gen_param_count == 3&& LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 2)&& LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 3))
                {
                    uint _targetSID = LuaAPI.xlua_touint(L, 2);
                    uint _attackSID = LuaAPI.xlua_touint(L, 3);
                        bool gen_ret = gen_to_be_invoked.IsBurning( _targetSID, _attackSID );
                        LuaAPI.lua_pushboolean(L, gen_ret);
                    return 1;
                }
                if(gen_param_count == 2&& LuaTypes.LUA_TNUMBER == LuaAPI.lua_type(L, 2))
                {
                    uint _targetSID = LuaAPI.xlua_touint(L, 2);
                        bool gen_ret = gen_to_be_invoked.IsBurning( _targetSID );
                        LuaAPI.lua_pushboolean(L, gen_ret);
                    return 1;
                }
            } catch(System.Exception gen_e) {
                return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
            }
            return LuaAPI.luaL_error(L, "invalid arguments to StatusMgr.IsBurning!");
        }
        
        
        
Lua/Gen/StatusMgrWrap.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 453eacef8d1aca54d94a552482bebc20
timeCreated: 1557818434
timeCreated: 1558494859
licenseType: Pro
MonoImporter:
  serializedVersion: 2