From f34adc1afc7771602f14d6cd1182e7ca2244e0ce Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期二, 16 四月 2019 11:47:23 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 System/OpenServerActivity/RewardInformation.cs |    2 
 Fight/GameActor/GA_NpcClientFightNorm.cs       |    4 +
 Utility/RuntimeLogUtility.cs                   |   18 +++---
 Fight/Actor/AI/SampleAI.cs                     |    3 
 Fight/Actor/AI/AI_Npc_198.cs                   |   96 +++++++++++++++++++++++++++++++
 5 files changed, 110 insertions(+), 13 deletions(-)

diff --git a/Fight/Actor/AI/AI_Npc_198.cs b/Fight/Actor/AI/AI_Npc_198.cs
index 6c8a682..31cacd4 100644
--- a/Fight/Actor/AI/AI_Npc_198.cs
+++ b/Fight/Actor/AI/AI_Npc_198.cs
@@ -16,9 +16,16 @@
         m_Owner.OnAttacked -= OnAttacked;
     }
 
+    private float m_LastBeAtkedTime = 0;
+
     public void OnAttacked()
     {
-
+        if (m_AIStatus != E_AIStatus.RunAway)
+        {
+            m_AIStatus = E_AIStatus.RunAway;
+            m_RunAwayStep = 0;
+        }
+        m_LastBeAtkedTime = Time.realtimeSinceStartup;
     }
 
     public override void Update()
@@ -32,10 +39,13 @@
         switch (m_AIStatus)
         {
             case E_AIStatus.Patrol:
+                _Patrol();
                 break;
             case E_AIStatus.MoveToBornPos:
+                MoveToBornPos();
                 break;
             case E_AIStatus.RunAway:
+                _RunAway();
                 break;
         }
     }
@@ -49,8 +59,22 @@
         {
             case 0:
                 // 閫夋嫨涓�涓�冭窇鐐�
+                var _nextForawrd = Random.rotation * m_Owner.Forward;
+                var _randomDis = Random.Range(0, m_Owner.NpcConfig.Sight * .5f);
+                m_Dest = m_Owner.BornPos + _nextForawrd * _randomDis;
+                m_RunAwayStep = 1;
                 break;
             case 1:
+                var _conmareDis = MathUtility.DistanceSqrtXZ(m_Owner.Pos, m_Dest);
+                if (_conmareDis > .5f)
+                {
+                    m_Owner.MoveToPosition(m_Dest);
+                }
+                else
+                {
+                    m_RunAwayStep = 0;
+                    m_AIStatus = E_AIStatus.Idle;
+                }
                 break;
         }
     }
@@ -79,6 +103,76 @@
         else
         {
             _compareDis = MathUtility.DistanceSqrtXZ(m_Owner.Pos, BornPos);
+            if (_compareDis > m_KeepBornDistSqrt)
+            {
+                m_AIStatus = E_AIStatus.MoveToBornPos;
+            }
+            else
+            {
+                if (m_AIStatus != E_AIStatus.RunAway
+                 && m_AIStatus != E_AIStatus.Idle)
+                {
+                    m_AIStatus = E_AIStatus.Patrol;
+                }
+            }
+        }
+
+        if (m_AIStatus == E_AIStatus.Idle)
+        {
+            if (Time.realtimeSinceStartup - m_LastBeAtkedTime > 5)
+            {
+                m_AIStatus = E_AIStatus.Patrol;
+            }
+        }
+    }
+
+    private void MoveToBornPos()
+    {
+        var _dis = MathUtility.DistanceSqrtXZ(m_Owner.Pos, BornPos);
+        if (_dis > 0.1f)
+        {
+            m_Owner.MoveToPosition(BornPos);
+        }
+        else
+        {
+            m_AIStatus = E_AIStatus.Patrol;
+        }
+    }
+
+    private byte patrolStep;
+    private float patrolWaitTime;
+    private float patrolWaitRandomTime;
+    private Vector3 randomPos;
+    private void _Patrol()
+    {
+        if (m_AIStatus == E_AIStatus.MoveToBornPos)
+        {
+            return;
+        }
+
+        switch (patrolStep)
+        {
+            case 0:
+                patrolWaitRandomTime = Random.Range(2f, 4f);
+                patrolWaitTime = Time.realtimeSinceStartup;
+                patrolStep = 1;
+                break;
+            case 1:
+                if (Time.realtimeSinceStartup - patrolWaitTime > patrolWaitRandomTime)
+                {
+                    patrolStep = 2;
+                    patrolWaitTime = Time.realtimeSinceStartup;
+                    randomPos = BornPos + new Vector3(Random.Range(-2f, 2f), 0, Random.Range(-2f, 2f));
+                    GActor.TryGetValidPos(randomPos, ref randomPos);
+                    m_Owner.MoveToPosition(randomPos);
+                }
+                break;
+            case 2:
+                if (Time.realtimeSinceStartup - patrolWaitTime > 2)
+                {
+                    patrolStep = 1;
+                }
+                break;
         }
     }
 }
\ No newline at end of file
diff --git a/Fight/Actor/AI/SampleAI.cs b/Fight/Actor/AI/SampleAI.cs
index b888455..2f039de 100644
--- a/Fight/Actor/AI/SampleAI.cs
+++ b/Fight/Actor/AI/SampleAI.cs
@@ -5,6 +5,7 @@
 {
     protected enum E_AIStatus
     {
+        Idle,
         Patrol,// 宸¢��
         MoveToTarget,// 鍚戠洰鏍囩Щ鍔�
         Attack,// 鏀诲嚮
@@ -31,8 +32,6 @@
     {
         m_Owner = owner;
         BornPos = bornPosition;
-
-        m_KeepBornDistSqrt = 5 * 5;
 
         // NPC绫诲瀷鐨勮閲庤鍙栭厤缃�
         m_KeepBornDistSqrt = m_Owner.NpcConfig.Sight * .5f;
diff --git a/Fight/GameActor/GA_NpcClientFightNorm.cs b/Fight/GameActor/GA_NpcClientFightNorm.cs
index 4767016..0ea3be5 100644
--- a/Fight/GameActor/GA_NpcClientFightNorm.cs
+++ b/Fight/GameActor/GA_NpcClientFightNorm.cs
@@ -94,6 +94,10 @@
         {
             m_AIHandler = new AI_Npc_200(this, BornPos);
         }
+        else if (NpcConfig.AIType == 198)
+        {
+            m_AIHandler = new AI_Npc_198(this, BornPos);
+        }
 
         heroAttacked = false;
     }
diff --git a/System/OpenServerActivity/RewardInformation.cs b/System/OpenServerActivity/RewardInformation.cs
index 97f3a0e..6ef63cd 100644
--- a/System/OpenServerActivity/RewardInformation.cs
+++ b/System/OpenServerActivity/RewardInformation.cs
@@ -53,7 +53,7 @@
                     itemCell.button.RemoveAllListeners();
                     itemCell.button.AddListener(() =>
                     {
-                        ItemAttrData attrData = new ItemAttrData(item.id, false, (ulong)item.count);
+                        ItemAttrData attrData = new ItemAttrData(item.id, true, (ulong)item.count);
                         itemTipsModel.SetItemTipsModel(attrData);
                     });
                 }
diff --git a/Utility/RuntimeLogUtility.cs b/Utility/RuntimeLogUtility.cs
index f280530..539cfc8 100644
--- a/Utility/RuntimeLogUtility.cs
+++ b/Utility/RuntimeLogUtility.cs
@@ -243,16 +243,16 @@
 
         if (GUILayout.Button("鍒涘缓PVP鏁屾柟"))
         {
-            // var _npc = GAMgr.Instance.ReqClntFightNpc<GA_NpcClientFightBoss>(30902001, E_ActorGroup.Enemy);
-            // _npc.BornPos = _npc.Pos = PlayerDatas.Instance.hero.Pos;
-            // _npc.ActorInfo.ResetHp(200, -1, 200);
+            var _npc = GAMgr.Instance.ReqClntFightNpc<GA_NpcClientFightNorm>(30102003, E_ActorGroup.Enemy);
+            _npc.BornPos = _npc.Pos = PlayerDatas.Instance.hero.Pos;
+            _npc.ActorInfo.ResetHp(9999999, -1, 9999999);
 
-            ClientDropItemUtility.Instance.Drop(PlayerDatas.Instance.hero.Pos,
-                                                new int[] { 5006, 5301, 5410, 5505, 10543, 1043050,
-                                                            5301, 5410, 5505, 10543, 1043050,
-                                                            5301, 5410, 5505, 10543, 1043050,
-                                                            5301, 5410, 5505, 10543, 1043050,
-                                                            5301, 5410, 5505, 10543, 1043050 });
+            // ClientDropItemUtility.Instance.Drop(PlayerDatas.Instance.hero.Pos,
+            //                                     new int[] { 5006, 5301, 5410, 5505, 10543, 1043050,
+            //                                                 5301, 5410, 5505, 10543, 1043050,
+            //                                                 5301, 5410, 5505, 10543, 1043050,
+            //                                                 5301, 5410, 5505, 10543, 1043050,
+            //                                                 5301, 5410, 5505, 10543, 1043050 });
 
             // var _npc = GAMgr.Instance.ReqClntFightNpc<GA_NpcClientFightBoss>(10103001, E_ActorGroup.Enemy);
 

--
Gitblit v1.8.0