From 4c93d9fbb22a381355f6dbd1aaf64e995eec6cd2 Mon Sep 17 00:00:00 2001
From: client_Hale <339726288@qq.com>
Date: 星期四, 16 八月 2018 11:16:09 +0800
Subject: [PATCH] fixed #1581 新手前期战斗断线重连切换账号。主界面和角色视野异常

---
 Fight/PreFightMission.cs              |  102 +++++++++++++++++++++++++++++++++++++++++++++++++-
 System/NewBieGuidance/NewBieCenter.cs |   16 +++++--
 2 files changed, 110 insertions(+), 8 deletions(-)

diff --git a/Fight/PreFightMission.cs b/Fight/PreFightMission.cs
index 71ba783..2335f6a 100644
--- a/Fight/PreFightMission.cs
+++ b/Fight/PreFightMission.cs
@@ -122,6 +122,14 @@
     {
         if ((h0827.MissionID > 999 && h0827.MissionID < 1003) || h0827.MissionID == 1)
         {
+            if (h0827.MissionID == 1001 && h0827.MissionState == 1)
+            {
+                if (s_MissionDict.ContainsKey(1002))
+                {
+                    s_MissionDict.Remove(1002);
+                }
+            }
+
             if (s_MissionDict.ContainsKey(h0827.MissionID))
             {
                 s_MissionDict[h0827.MissionID].status = h0827.MissionState;
@@ -179,8 +187,7 @@
         _model.arrowScale = 1;
 
         IsHeroCanCastSkill = false;
-        Transform _temp = null;
-        _temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/CopyOfThePanel/TopRightTip");
+        var _temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/CopyOfThePanel/TopRightTip");
         _temp.gameObject.SetActive(false);
         _temp = WindowCenter.Instance.uiRoot.baseCanvas.Find("MainInterfaceWin/CopyOfThePanel/HighSettingTip/HighSettingShow");
         _temp.gameObject.SetActive(false);
@@ -1378,7 +1385,7 @@
     }
 
     // 鍓嶆湡鎴樻枟娴佺▼缁撴潫
-    private void Step_4_TransferFinished()
+    public void Step_4_TransferFinished()
     {
         m_SpecialGuideId = -1;
         m_IsServerNewPlayerMissionFinished = true;
@@ -1532,6 +1539,95 @@
         }
 
         mDestroy = true;
+
+        m_SpecialGuideId = -1;
+        m_IsServerNewPlayerMissionFinished = true;
+
+        if (m_FuncNpc != null)
+        {
+            GAMgr.Instance.ServerDie(m_FuncNpc.ServerInstID);
+            GAMgr.Instance.Release(m_FuncNpc);
+            m_FuncNpc = null;
+        }
+
+        missionNpcDict.Clear();
+        s_MissionDict.Clear();
+        s_MissionImpasseDict.Clear();
+        refreshNpcHandlerList.Clear();
+
+        if (m_SimpleTransfer)
+        {
+            Object.Destroy(m_SimpleTransfer.gameObject);
+            m_SimpleTransfer = null;
+        }
+
+        if (m_ObstacleEffect)
+        {
+            Object.Destroy(m_ObstacleEffect.gameObject);
+            m_ObstacleEffect = null;
+        }
+
+        if (m_HuaShouEffect)
+        {
+            Object.Destroy(m_HuaShouEffect.gameObject);
+            m_HuaShouEffect = null;
+        }
+
+        if (m_FabaoEffect)
+        {
+            SFXPlayUtility.Instance.Release(m_FabaoEffect);
+            m_FabaoEffect = null;
+        }
+
+        var _temp = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("CopyOfThePanel/TopRightTip");
+        _temp.gameObject.SetActive(true);
+        _temp = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("CopyOfThePanel/HighSettingTip/HighSettingShow");
+        _temp.gameObject.SetActive(true);
+        _temp = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("CopyOfThePanel/HighSettingTip/BoxContainer");
+        _temp.gameObject.SetActive(true);
+
+        _temp = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("CopyOfThePanel/HighSettingTip/Container_Treasure");
+        _temp.gameObject.SetActive(true);
+
+        _temp = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("SkillButtonTip/Pivot/CastSkillTip/SwitchPan_a");
+        _temp.localScale = Vector3.one;
+        _temp = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("SkillButtonTip/Pivot/CastSkillTip/Btn_SkillXp");
+        _temp.localScale = Vector3.one;
+        _temp = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("ChatTip");
+        _temp.localScale = Vector3.one;
+        _temp = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("LowSettingTip");
+        _temp.localScale = Vector3.one;
+        _temp = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("SwitchShowBtn");
+        _temp.localScale = Vector3.one;
+        _temp = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("HeadPortraitTip");
+        _temp.localScale = Vector3.one;
+        _temp = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("HeadPortraitTip/PatternBtn");
+        _temp.localScale = Vector3.one;
+        _temp = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("HeadPortraitTip/VIPBtn");
+        _temp.GetComponent<Animator>().enabled = true;
+        _temp.localScale = Vector3.one;
+        _temp = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("FunctionForecastTip");
+        _temp.localScale = Vector3.one;
+        _temp = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("TaskAndTeamTip/TaskListTip");
+        _temp.gameObject.SetActive(true);
+        _temp = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("TaskSwithButton");
+        _temp.localScale = Vector3.one;
+
+        ButtonEx _button = WindowCenter.Instance.Get<MainInterfaceWin>().transform.Find("HeadPortraitTip/Head").GetComponent<ButtonEx>();
+        _button.enabled = true;
+
+        skillContainer.skill1.transform.localScale = Vector3.one;
+        skillContainer.skill2.transform.localScale = Vector3.one;
+        skillContainer.skill3.transform.localScale = Vector3.one;
+        skillContainer.skill4.transform.localScale = Vector3.one;
+        skillContainer.blinkSkill.transform.localScale = Vector3.one;
+        skillContainer.switchButton.gameObject.SetActive(true);
+        skillContainer.skillTurnplate.drag = true;
+        skillContainer.transform.localScale = Vector3.one;
+
+        WindowCenter.Instance.Close<NewGuideWin>();
+        NewBieCenter.Instance.StartNewBieGuide(1);
+
         if (m_FuncNpc != null)
         {
             GAMgr.Instance.ServerDie(m_FuncNpc.ServerInstID);
diff --git a/System/NewBieGuidance/NewBieCenter.cs b/System/NewBieGuidance/NewBieCenter.cs
index f27830f..ae9338a 100644
--- a/System/NewBieGuidance/NewBieCenter.cs
+++ b/System/NewBieGuidance/NewBieCenter.cs
@@ -16,18 +16,21 @@
     {
 
         int m_CurrentGuide = 0;
-        public int currentGuide {
+        public int currentGuide
+        {
             get { return m_CurrentGuide; }
             set { m_CurrentGuide = value; }
         }
 
         int m_GuideStep = 0;
-        public int guideStep {
+        public int guideStep
+        {
             get { return m_GuideStep; }
             private set { m_GuideStep = value; }
         }
 
-        public bool inGuiding {
+        public bool inGuiding
+        {
             get { return currentGuide != 0; }
         }
 
@@ -147,9 +150,12 @@
             FunctionalGuideCenter.Instance.RemoveAllUnderWayGuide();
 
             currentGuide = _id;
-            PlayerDatas.Instance.hero.Behaviour.StopHandupAI();
             MapTransferUtility.Instance.Clear();
-            PlayerDatas.Instance.hero.StopPathFind();
+            if (PlayerDatas.Instance.hero != null)
+            {
+                PlayerDatas.Instance.hero.Behaviour.StopHandupAI();
+                PlayerDatas.Instance.hero.StopPathFind();
+            }
             var config = ConfigManager.Instance.GetTemplate<GuideConfig>(currentGuide);
             guideStep = config.Steps.Length > 0 ? config.Steps[0] : 0;
 

--
Gitblit v1.8.0