From ac8a40ad2d24e7700fa5667d732cd9f2ab83e6ef Mon Sep 17 00:00:00 2001
From: client_Hale <339726288@qq.com>
Date: 星期二, 16 四月 2019 14:25:09 +0800
Subject: [PATCH] 382 逃离的NPC不死逻辑
---
Fight/Actor/Skill/AttackHandler.cs | 14 +++++++++++++-
Fight/Actor/AI/AI_Npc_198.cs | 1 +
Fight/Actor/HeroBehaviour.cs | 35 +++++++++++++++++++----------------
3 files changed, 33 insertions(+), 17 deletions(-)
diff --git a/Fight/Actor/AI/AI_Npc_198.cs b/Fight/Actor/AI/AI_Npc_198.cs
index 31cacd4..7d0b036 100644
--- a/Fight/Actor/AI/AI_Npc_198.cs
+++ b/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:
diff --git a/Fight/Actor/HeroBehaviour.cs b/Fight/Actor/HeroBehaviour.cs
index f11491e..69ee938 100644
--- a/Fight/Actor/HeroBehaviour.cs
+++ b/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)
diff --git a/Fight/Actor/Skill/AttackHandler.cs b/Fight/Actor/Skill/AttackHandler.cs
index 826f7a1..92219af 100644
--- a/Fight/Actor/Skill/AttackHandler.cs
+++ b/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)
{
--
Gitblit v1.8.0