少年修仙传客户端代码仓库
client_Hale
2019-04-16 ac8a40ad2d24e7700fa5667d732cd9f2ab83e6ef
382 逃离的NPC不死逻辑
3个文件已修改
50 ■■■■■ 已修改文件
Fight/Actor/AI/AI_Npc_198.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/HeroBehaviour.cs 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/Skill/AttackHandler.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/AI/AI_Npc_198.cs
@@ -62,6 +62,7 @@
                var _nextForawrd = Random.rotation * m_Owner.Forward;
                var _randomDis = Random.Range(0, m_Owner.NpcConfig.Sight * .5f);
                m_Dest = m_Owner.BornPos + _nextForawrd * _randomDis;
                GActor.TryGetValidPos(m_Dest, ref m_Dest);
                m_RunAwayStep = 1;
                break;
            case 1:
Fight/Actor/HeroBehaviour.cs
@@ -887,24 +887,27 @@
                if (_target.ActorInfo.RealHp <= _hurtValue)
                {
                    _target.KillerServerInstID = m_Hero.ServerInstID;
                    _target.ActorInfo.serverDie = true;
                    GAMgr.Instance.ServerDie(_target.ServerInstID);
                    GAMgr.Instance.DoDelayDie(_target);
                    if (_clientNpc.NpcConfig.AIType != 198)
                    {
                        _target.KillerServerInstID = m_Hero.ServerInstID;
                        _target.ActorInfo.serverDie = true;
                        GAMgr.Instance.ServerDie(_target.ServerInstID);
                        GAMgr.Instance.DoDelayDie(_target);
                    if (m_Hero.LockTarget == _target)
                    {
                        m_Hero.LockTarget = null;
                    }
                    if (m_Hero.SelectTarget == _target)
                    {
                        m_Hero.SelectTarget = null;
                    }
                        if (m_Hero.LockTarget == _target)
                        {
                            m_Hero.LockTarget = null;
                        }
                        if (m_Hero.SelectTarget == _target)
                        {
                            m_Hero.SelectTarget = null;
                        }
                    if (_clientNpc != null
                     && _clientNpc.belongEventID != -1)
                    {
                        ClientSceneManager.Instance.NpcDead(_clientNpc.belongEventID, _clientNpc, _clientNpc.NpcConfig.NPCID);
                        if (_clientNpc != null
                         && _clientNpc.belongEventID != -1)
                        {
                            ClientSceneManager.Instance.NpcDead(_clientNpc.belongEventID, _clientNpc, _clientNpc.NpcConfig.NPCID);
                        }
                    }
                    // 前期战斗只发送石头人的
                    //if (1000 == _target.NpcConfig.NPCID)
Fight/Actor/Skill/AttackHandler.cs
@@ -195,6 +195,8 @@
                }
                else
                {
                    bool _doReduceHp = true;
                    if (attacker is GA_NpcClientFightNorm)
                    {
                        if (target.ActorInfo.RealHp <= (target.ActorInfo.RealMaxHp * .5f))
@@ -202,8 +204,18 @@
                            hurtValue = 0;
                        }
                    }
                    else if (target is GA_NpcClientFightNorm)
                    {
                        if ((target as GA_NpcClientFightNorm).NpcConfig.AIType == 198)
                        {
                            _doReduceHp = false;
                        }
                    }
                    target.ActorInfo.ReduceHp((uint)hurtValue);
                    if (_doReduceHp)
                    {
                        target.ActorInfo.ReduceHp((uint)hurtValue);
                    }
                    if (target.ServerInstID == PlayerDatas.Instance.baseData.PlayerID)
                    {