From c2d2d5d3a840bf50968b3f95e304929bc62a7b70 Mon Sep 17 00:00:00 2001
From: leonard Wu <364452445@qq.com>
Date: 星期五, 03 八月 2018 21:02:26 +0800
Subject: [PATCH] 更新代码

---
 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