From 7cc84329c52b6e39cd979eb33a126e059b9bf36c Mon Sep 17 00:00:00 2001
From: leonard Wu <364452445@qq.com>
Date: 星期五, 03 八月 2018 21:07:11 +0800
Subject: [PATCH] Merge branch 'master' into leonard
---
Fight/GameActor/GA_Player.cs | 126 +++++++++++++++++++++++++++++++++++-------
1 files changed, 105 insertions(+), 21 deletions(-)
diff --git a/Fight/GameActor/GA_Player.cs b/Fight/GameActor/GA_Player.cs
index a143741..0f9d01d 100644
--- a/Fight/GameActor/GA_Player.cs
+++ b/Fight/GameActor/GA_Player.cs
@@ -19,6 +19,8 @@
private H0434_tagAreaPlayerAppearEx m_H0434;
private CmdManager m_CmdManager;
+ private int m_ComAtkIndex;// 鏅敾绱㈠紩
+ private Skill m_CastSkill;// 瑕侀噴鏀剧殑鎶�鑳�
protected sealed override void OnInit(GameNetPackBasic package)
{
@@ -193,30 +195,122 @@
{
case 0:
- m_DestPos = m_RecordBornPos + Quaternion.Euler(0, Random.Range(0, 359), 0) * Vector3.forward * Random.Range(1f, 2f);
- TryGetValidPos(m_DestPos, ref m_DestPos);
+ //m_DestPos = m_RecordBornPos + Quaternion.Euler(0, Random.Range(0, 359), 0) * Vector3.forward * Random.Range(1f, 2f);
+ //TryGetValidPos(m_DestPos, ref m_DestPos);
+
+ if (SelectTarget == null)
+ {
+ SelectTarget = GAMgr.Instance.GetCloserFightNpc(Pos);
+ }
+ if (SelectTarget != null)
+ {
+ destForward = Forward = MathUtility.ForwardXZ(SelectTarget.Pos, Pos);
+ }
+
m_Step = 1;
break;
case 1:
- float _distSqrt = MathUtility.DistanceSqrtXZ(Pos, m_DestPos);
- if (_distSqrt > 0.25f)
+ m_CastSkill = null;
+ for (int i = 0; i < JobSetup.HangupSkillList.Length; ++i)
{
- if (State != E_ActorState.AutoRun)
+ if (SkillMgr.Get(JobSetup.HangupSkillList[i]).IsValid())
{
- MoveToPosition(m_DestPos);
+ m_CastSkill = SkillMgr.Get(JobSetup.HangupSkillList[i]);
+ break;
}
}
- else
+
+ if (m_CastSkill == null)
{
- m_Step = 2;
+ if (m_ComAtkIndex > JobSetup.ComAtkIdList.Length - 1)
+ {
+ m_ComAtkIndex = 0;
+ }
+ int _comSkillId = JobSetup.ComAtkIdList[m_ComAtkIndex];
+ m_CastSkill = SkillMgr.Get(_comSkillId);
+ m_ComAtkIndex += 1;
}
+
+ m_Step = 2;
break;
case 2:
- Play(GAStaticDefine.State_Attack1Hash);
+ if (m_CastSkill != null)
+ {
+ SkillMgr.CastSkill(ServerInstID, m_CastSkill.id, true);
+
+ Vector3 _targetPosition = Pos + Forward * (m_CastSkill.skillInfo.config.AtkDist * .5f);
+ _targetPosition.y = 0;
+ UnityEngine.AI.NavMeshHit _navMeshHit;
+ if (UnityEngine.AI.NavMesh.Raycast(Pos, _targetPosition, out _navMeshHit, -1))
+ {
+ _targetPosition = _navMeshHit.position;
+ }
+ _targetPosition.y = Pos.y;
+ m_CastSkill.targetPosition = _targetPosition;
+
+ if (m_CastSkill.skillInfo.config.Skillactmark > 0
+ && m_CastSkill.skillInfo.config.Skillactmark < 20)
+ {
+ switch (m_CastSkill.skillInfo.config.Skillactmark)
+ {
+ case 10:
+ Play(GAStaticDefine.State_Attack1Hash, 0);
+ break;
+ case 11:
+ Play(GAStaticDefine.State_Attack2Hash, 0);
+ break;
+ case 12:
+ Play(GAStaticDefine.State_Attack3Hash, 0);
+ break;
+ case 13:
+ Play(GAStaticDefine.State_Attack4Hash, 0);
+ break;
+ }
+
+ }
+ else
+ {
+ switch (m_CastSkill.skillInfo.config.Skillactmark)
+ {
+ case 21:
+ Play(GAStaticDefine.State_Skill21, 0);
+ break;
+ case 22:
+ Play(GAStaticDefine.State_Skill22, 0);
+ break;
+ case 23:
+ Play(GAStaticDefine.State_Skill23, 0);
+ break;
+ case 24:
+ Play(GAStaticDefine.State_Skill24, 0);
+ break;
+ case 25:
+ Play(GAStaticDefine.State_Skill25, 0);
+ break;
+ case 26:
+ Play(GAStaticDefine.State_Skill26, 0);
+ break;
+ case 27:
+ Play(GAStaticDefine.State_Skill27, 0);
+ break;
+ case 28:
+ Play(GAStaticDefine.State_Skill28, 0);
+ break;
+ case 29:
+ Play(GAStaticDefine.State_Skill29, 0);
+ break;
+ case 99:
+ Play(GAStaticDefine.State_RollHash, 0);
+ break;
+ }
+ }
+
+ }
+
m_Step = 3;
break;
@@ -225,17 +319,7 @@
if (IsIdle())
{
- m_Step = 4;
- }
-
- break;
- case 4:
-
- m_WaitTime += Time.deltaTime;
- if (m_WaitTime > 2)
- {
m_Step = 0;
- m_WaitTime = 0;
}
break;
@@ -259,7 +343,7 @@
{
ActorInfo.moveSpeed = 500f / speed;
m_StartMove = startOrStop;
- m_TargetPos = pos;
+ TryGetValidPos(pos, ref m_TargetPos);
_dir = MathUtility.ForwardXZ(m_TargetPos, Pos);
if (m_StartMove)
@@ -529,7 +613,7 @@
return false;
}
- if (StatusMgr.Instance.IsInvincible(ServerInstID))
+ if (StatusMgr.Instance.IsInvisible(ServerInstID))
{
return false;
}
--
Gitblit v1.8.0