From d01b24369869ddde953776f82a8900e49b016d64 Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期六, 25 八月 2018 11:57:39 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 Fight/GameActor/GActorPlayerBase.cs |  101 +++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 95 insertions(+), 6 deletions(-)

diff --git a/Fight/GameActor/GActorPlayerBase.cs b/Fight/GameActor/GActorPlayerBase.cs
index 2aa1f66..d02a752 100644
--- a/Fight/GameActor/GActorPlayerBase.cs
+++ b/Fight/GameActor/GActorPlayerBase.cs
@@ -39,6 +39,7 @@
     protected HeadUpName m_HeadUpName = null;
 
     private int m_HorseActionType = 0;
+    public int nextComAtkIndex = -1;
 
     public JobSetupConfig JobSetup { get; protected set; }
 
@@ -62,8 +63,6 @@
         }
     }
 
-    public int nextComAtkIndex = -1;
-
     public void SwitchHeadNameBindNode(bool castingSkill)
     {
         // 瑙掕壊琚殣钘忕姸鎬佷笅涓嶆墽琛屽ご椤跺悕绉板垏鎹㈤�昏緫
@@ -82,6 +81,87 @@
             {
                 m_HeadUpName.target = MP_Name;
             }
+        }
+    }
+
+    public bool IsPolyMorph { get; private set; }
+    private GameObject m_SheepModel;
+    private bool m_SheepIsDefaultNpc;
+    public virtual void Polymorph(bool doOrNo)
+    {
+        IsPolyMorph = doOrNo;
+
+        if (IsPolyMorph)
+        {
+            ChangeBinderToRoot();
+
+            // 姝e湪楠戜箻鐘舵�佷笅
+            if (MovingState == E_MovingState.Ride)
+            {
+                m_HorseModel.transform.position = Constants.Special_Hide_Position;
+                SwitchHorse(0);
+                DTC0428_tagPlayerRideHorse.Send_tagPlayerRideHorse(false);
+            }
+            else
+            {
+                m_ClothesModel.transform.position = Constants.Special_Hide_Position;
+            }
+
+            m_SheepIsDefaultNpc = false;
+            var _p = InstanceResourcesLoader.LoadNpc(10101001);
+            if (_p == null)
+            {
+                _p = InstanceResourcesLoader.LoadDefaultFightNPC();
+                m_SheepIsDefaultNpc = true;
+            }
+
+            m_SheepModel = GameObjectPoolManager.Instance.RequestGameObject(_p);
+            m_SheepModel.transform.SetParent(m_Root);
+
+            var _a = m_SheepModel.GetComponent<Animator>();
+            if (_a)
+            {
+                _a.enabled = true;
+                _a.SetInteger(GAStaticDefine.Param_ActorInstID, (int)ClientInstID);
+                m_ClothesAnimator.enabled = false;
+                m_ClothesAnimator = _a;
+            }
+
+            if (ShowOrHide)
+            {
+                m_SheepModel.transform.localPosition = Vector3.zero;
+            }
+            else
+            {
+                m_SheepModel.transform.localPosition = Constants.Special_Hide_Position;
+            }
+
+            m_SheepModel.transform.localRotation = Quaternion.identity;
+        }
+        else
+        {
+            if (m_SheepModel)
+            {
+                if (m_SheepIsDefaultNpc)
+                {
+                    GameObjectPoolManager.Instance.ReleaseDefaultFightNPC(m_SheepModel);
+                }
+                else
+                {
+                    var _prefab = InstanceResourcesLoader.LoadNpc(10101001);
+                    GameObjectPoolManager.Instance.ReleaseGameObject(_prefab, m_SheepModel);
+                }
+            }
+
+            m_SheepModel = null;
+            m_ClothesModel.transform.localPosition = Vector3.zero;
+
+            ChangeBinderToClothes();
+
+            m_ClothesAnimator = m_ClothesModel.GetComponent<Animator>();
+            m_ClothesAnimator.enabled = true;
+            m_ClothesAnimator.SetInteger(GAStaticDefine.Param_ActorInstID, (int)ClientInstID);
+            m_ClothesAnimator.SetInteger(GAStaticDefine.Param_MoveState, (int)E_MovingState.Normal);
         }
     }
 
@@ -974,8 +1054,11 @@
             }
             if (ShowOrHide)
             {
-                m_ClothesModel.transform.localPosition = Vector3.zero;
-                m_ClothesModel.transform.localRotation = Quaternion.identity;
+                if (!IsPolyMorph)
+                {
+                    m_ClothesModel.transform.localPosition = Vector3.zero;
+                    m_ClothesModel.transform.localRotation = Quaternion.identity;
+                }
             }
             else
             {
@@ -987,12 +1070,18 @@
             if (m_WingModel)
             {
                 MovingState = E_MovingState.Fly;
-                m_ClothesAnimator.SetInteger(GAStaticDefine.Param_MoveState, (int)E_MovingState.Fly);
+                if (!IsPolyMorph)
+                {
+                    m_ClothesAnimator.SetInteger(GAStaticDefine.Param_MoveState, (int)E_MovingState.Fly);
+                }
             }
             else
             {
                 MovingState = E_MovingState.Normal;
-                m_ClothesAnimator.SetInteger(GAStaticDefine.Param_MoveState, (int)E_MovingState.Normal);
+                if (!IsPolyMorph)
+                {
+                    m_ClothesAnimator.SetInteger(GAStaticDefine.Param_MoveState, (int)E_MovingState.Normal);
+                }
             }
 
             SwitchHeadNameBindNode(false);

--
Gitblit v1.8.0