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