From bd2c2f1bd3ab7624f62bae55b041b71c0bc352ce Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期一, 13 八月 2018 15:45:34 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
---
Fight/PreFightMission.cs | 116 +++++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 98 insertions(+), 18 deletions(-)
diff --git a/Fight/PreFightMission.cs b/Fight/PreFightMission.cs
index 699a06c..54979b5 100644
--- a/Fight/PreFightMission.cs
+++ b/Fight/PreFightMission.cs
@@ -102,22 +102,6 @@
UILoader.LoadPrefab(_actorShowConfig.cam);
}
- public void CreateAllMissionNpc()
- {
- if (s_MissionDict.Count == 0)
- {
- return;
- }
-
- foreach (var _mission in s_MissionDict.Values)
- {
- if (_mission.status == 1)
- {
- HandlerMission(_mission.id);
- }
- }
- }
-
public void HandleNewPlayerMission(H0820_tagMissionDict h0820)
{
if (h0820.MissionID == 1)
@@ -190,6 +174,7 @@
public void Start()
{
+ mDestroy = false;
NewGuideModel _model = ModelCenter.Instance.GetModel<NewGuideModel>();
_model.arrowScale = 1;
@@ -445,13 +430,20 @@
GA_Hero _hero = PlayerDatas.Instance.hero;
while (true)
{
+ if (mDestroy)
+ {
+ yield break;
+ }
if (_hero.IsIdle())
{
break;
}
yield return null;
}
- PlayerDatas.Instance.hero.MoveToPosition(pos);
+ if (!mDestroy)
+ {
+ PlayerDatas.Instance.hero.MoveToPosition(pos);
+ }
}
private void HandlerMission(uint missionId)
@@ -468,7 +460,6 @@
if (s_MissionDict.ContainsKey(missionId))
{
- DesignDebug.LogFormat("宸茬粡鍒涘缓杩囩殑浠诲姟ID: {0}", missionId);
return;
}
@@ -1532,6 +1523,95 @@
DesignDebug.Log("鍓嶆湡缁撴潫...");
}
+ private bool mDestroy = false;
+ public void Destroy()
+ {
+ mDestroy = 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;
+ }
+
+ // 璧勬簮鍗歌浇
+ if (!AssetSource.sceneFromEditor)
+ {
+ UnityEngine.SceneManagement.SceneManager.UnloadSceneAsync("Map000_Xsdt");
+ AssetBundleUtility.Instance.UnloadAssetBundle("maps/map000_xsdt", true, false);
+ }
+
+ List<GActor> _list = GAMgr.Instance.GetTypeList(E_ActorClassType.NpcClientFightNorm);
+ if (_list != null)
+ {
+ for (int i = _list.Count - 1; i >= 0; --i)
+ {
+ GAMgr.Instance.ServerDie(_list[i].ServerInstID);
+ GAMgr.Instance.Release(_list[i]);
+ }
+ }
+
+ _list = GAMgr.Instance.GetTypeList(E_ActorClassType.NpcClientFightBoss);
+ if (_list != null)
+ {
+ for (int i = _list.Count - 1; i >= 0; --i)
+ {
+ GAMgr.Instance.ServerDie(_list[i].ServerInstID);
+ GAMgr.Instance.Release(_list[i]);
+ }
+ }
+
+ _list = GAMgr.Instance.GetTypeList(E_ActorClassType.NpcClientFunc);
+ if (_list != null)
+ {
+ for (int i = _list.Count - 1; i >= 0; --i)
+ {
+ GAMgr.Instance.ServerDie(_list[i].ServerInstID);
+ GAMgr.Instance.Release(_list[i]);
+ }
+ }
+
+ GameObjectPoolManager.Instance.UnLoadNPC(1000);
+ GameObjectPoolManager.Instance.UnLoadNPC(1003);
+ GameObjectPoolManager.Instance.UnLoadNPC(1006);
+ GameObjectPoolManager.Instance.UnLoadNPC(1007);
+ GameObjectPoolManager.Instance.UnLoadNPC(1008);
+ GameObjectPoolManager.Instance.UnLoadNPC(1009);
+
+ if (!AssetSource.mobFromEditor)
+ {
+ AssetBundleUtility.Instance.UnloadAssetBundle("mob/prefab_race_n017a", true, true);
+ }
+ }
private SimpleMapTrasfer CreateTransfer()
{
--
Gitblit v1.8.0