From 196c1f03fe7a8908272c8127133e632d107eaef8 Mon Sep 17 00:00:00 2001
From: client_Zxw <826696702@qq.com>
Date: 星期一, 13 八月 2018 16:35:33 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
---
Fight/PreFightMission.cs | 116 ++++++++++++++++++++++++----
System/Welfare/MultipleExpWin.cs | 5 +
System/Welfare/OperationTimeHepler.cs | 17 +--
System/FindPrecious/DemonJarWin.cs | 3
System/RuneTower/RuneTowerWin.cs | 13 +++
Fight/Stage/Dungeon/DungeonStage.cs | 2
System/DailyQuest/DailyQuestBehaviour.cs | 14 ++
System/DailyQuest/DailyQuestWin.cs | 1
System/DailyQuest/DailyQuestModel.cs | 18 ++++
9 files changed, 153 insertions(+), 36 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()
{
diff --git a/Fight/Stage/Dungeon/DungeonStage.cs b/Fight/Stage/Dungeon/DungeonStage.cs
index 7b8c3a7..6a6909e 100644
--- a/Fight/Stage/Dungeon/DungeonStage.cs
+++ b/Fight/Stage/Dungeon/DungeonStage.cs
@@ -122,7 +122,7 @@
CameraController.Instance.StopShake();
}
- PreFightMission.Instance.refreshNpcHandlerList.Clear();
+ PreFightMission.Instance.Destroy();
GAMgr.Instance.UnInit();
DropItemManager.ReleaseAll();
SFXPlayUtility.Instance.Unitialize();
diff --git a/System/DailyQuest/DailyQuestBehaviour.cs b/System/DailyQuest/DailyQuestBehaviour.cs
index d969fa1..230eeea 100644
--- a/System/DailyQuest/DailyQuestBehaviour.cs
+++ b/System/DailyQuest/DailyQuestBehaviour.cs
@@ -125,9 +125,17 @@
{
if (state == DailyQuestModel.DailyQuestState.CanBuyTimes)
{
- var config = ConfigManager.Instance.GetTemplate<DailyQuestConfig>(data.id);
- dungeonModel.currentDungeon = new Dungeon(config.RelatedID, 0);
- WindowCenter.Instance.Open<DungeonBuyTimesWin>();
+ switch ((DailyQuestType)data.id)
+ {
+ case DailyQuestType.RuneTowerSweep:
+ dailyQuestWin.GotoDailyQuest(data.id);
+ break;
+ default:
+ var config = ConfigManager.Instance.GetTemplate<DailyQuestConfig>(data.id);
+ dungeonModel.currentDungeon = new Dungeon(config.RelatedID, 0);
+ WindowCenter.Instance.Open<DungeonBuyTimesWin>();
+ break;
+ }
}
else
{
diff --git a/System/DailyQuest/DailyQuestModel.cs b/System/DailyQuest/DailyQuestModel.cs
index e9df2bf..656fc01 100644
--- a/System/DailyQuest/DailyQuestModel.cs
+++ b/System/DailyQuest/DailyQuestModel.cs
@@ -246,7 +246,7 @@
switch (config.RelatedID)
{
case 11:
- return dailyQuestOpenTime.DayTimes + GeneralConfig.Instance.runeTowerSweepBuyTimes;
+ return Math.Max(dailyQuestOpenTime.DayTimes, GetDailyQuestCompletedTimes(_dailyQuestId));
case 16:
return ModelCenter.Instance.GetModel<VipModel>().GetVipPrivilegeCnt(VipPrivilegeType.BossHomeAwardLimit);
default:
@@ -831,7 +831,21 @@
switch (config.RelatedType)
{
case 1:
- return DailyQuestState.Completed;
+ switch (config.RelatedID)
+ {
+ case 11:
+ var dailyQuestOpenTime = ConfigManager.Instance.GetTemplate<DailyQuestOpenTimeConfig>(config.RelatedID);
+ if (completedTimes >= dailyQuestOpenTime.DayTimes + GeneralConfig.Instance.runeTowerSweepBuyTimes)
+ {
+ return DailyQuestState.Completed;
+ }
+ else
+ {
+ return DailyQuestState.CanBuyTimes;
+ }
+ default:
+ return DailyQuestState.Completed;
+ }
case 2:
DungeonRecord record;
dungeonModel.TryGetDungeonRecord(config.RelatedID, out record);
diff --git a/System/DailyQuest/DailyQuestWin.cs b/System/DailyQuest/DailyQuestWin.cs
index f0fb056..fe0d5d4 100644
--- a/System/DailyQuest/DailyQuestWin.cs
+++ b/System/DailyQuest/DailyQuestWin.cs
@@ -252,6 +252,7 @@
dungeonModel.SingleChallengeDungeon(config.RelatedID);
break;
case DailyQuestType.RuneTowerSweep:
+ RuneTowerWin.guideSweep = true;
WindowCenter.Instance.CloseImmediately<DailyQuestWin>();
WindowCenter.Instance.Open<RuneTowerWin>();
break;
diff --git a/System/FindPrecious/DemonJarWin.cs b/System/FindPrecious/DemonJarWin.cs
index 5986089..c4d20bc 100644
--- a/System/FindPrecious/DemonJarWin.cs
+++ b/System/FindPrecious/DemonJarWin.cs
@@ -297,6 +297,9 @@
return;
}
+ totalTimes = dungeonModel.GetDungeonTotalTimes(DemonJarModel.DEMONJAR_MAPID);
+ enterTimes = dungeonModel.GetDungeonEnterTimes(DemonJarModel.DEMONJAR_MAPID);
+
m_Times.text = StringUtility.Contact(totalTimes - enterTimes, "/", DemonJarModel.TOTALTIME_LIMIT);
if ((totalTimes - enterTimes) < DemonJarModel.TOTALTIME_LIMIT)
diff --git a/System/RuneTower/RuneTowerWin.cs b/System/RuneTower/RuneTowerWin.cs
index c446264..6572750 100644
--- a/System/RuneTower/RuneTowerWin.cs
+++ b/System/RuneTower/RuneTowerWin.cs
@@ -17,6 +17,7 @@
public class RuneTowerWin : Window
{
public static bool guideChallenge = false;
+ public static bool guideSweep = false;
[SerializeField] RuneTowerBehaviour m_Tower;
[SerializeField] Transform m_ContainerBossInfo;
@@ -98,6 +99,7 @@
protected override void OnPreClose()
{
guideChallenge = false;
+ guideSweep = false;
WindowCenter.Instance.uiRoot.eventSystem.enabled = true;
m_Tower.Dispose();
UI3DModelExhibition.Instance.StopShowNPC();
@@ -126,6 +128,7 @@
}
CheckTaskGuide();
+ CheckSweepGuide();
CheckAchievementGuide();
}
@@ -331,7 +334,6 @@
}
}
-
private void CheckTaskGuide()
{
if (guideChallenge)
@@ -341,6 +343,15 @@
}
}
+ private void CheckSweepGuide()
+ {
+ if (guideSweep && m_Sweep.gameObject.activeInHierarchy)
+ {
+ var guideEffect = AchievementGuideEffectPool.Require(1);
+ guideEffect.transform.SetParentEx(m_Sweep.transform, Vector3.zero, Vector3.zero, Vector3.one);
+ }
+ }
+
private void CheckAchievementGuide()
{
if (AchievementGoto.guideAchievementId != 0)
diff --git a/System/Welfare/MultipleExpWin.cs b/System/Welfare/MultipleExpWin.cs
index c35d485..72b33c3 100644
--- a/System/Welfare/MultipleExpWin.cs
+++ b/System/Welfare/MultipleExpWin.cs
@@ -15,6 +15,7 @@
public class MultipleExpWin : Window
{
[SerializeField] Text m_MultipleTime;
+ [SerializeField] Text m_MultipleDate;
[SerializeField] Text m_ActivityRule;
[SerializeField] Image m_MultipleIcon1;
[SerializeField] Image m_MultipleIcon2;
@@ -64,6 +65,10 @@
{
OperationMultiExp operation = operationBase as OperationMultiExp;
m_MultipleTime.text = operation.ToDisplayTime();
+ m_MultipleDate.text = StringUtility.Contact(Language.Get("OperationDate"), operation.startDate.ToDisplay(),
+ operation.startDate == operation.endDate ? string.Empty : "鈥�",
+ operation.startDate == operation.endDate ? string.Empty :
+ operation.endDate.ToDisplay(operation.startDate.year != operation.endDate.year));
m_ActivityRule.text = Language.Get("MultipleExp_Rule_2", operation.GetMultipleCHS());
m_MultipleIcon1.SetSprite(StringUtility.Contact("MultipleExp_Icon_", operation.multiple / 10000));
m_MultipleIcon2.SetSprite(StringUtility.Contact("MultipleExp_Icon_", operation.multiple / 10000));
diff --git a/System/Welfare/OperationTimeHepler.cs b/System/Welfare/OperationTimeHepler.cs
index 916c5a3..203f306 100644
--- a/System/Welfare/OperationTimeHepler.cs
+++ b/System/Welfare/OperationTimeHepler.cs
@@ -890,17 +890,12 @@
{
var textBuilder = OperationTimeHepler.textBuilder;
textBuilder.Length = 0;
- textBuilder.Append(startDate.ToDisplay());
- if (startDate == endDate)
- {
- textBuilder.Append("锛�");
- }
- else
- {
- textBuilder.Append("鈥�");
- textBuilder.Append(endDate.ToDisplay(startDate.year != endDate.year));
- textBuilder.Append("锛�");
- }
+ //textBuilder.Append(startDate.ToDisplay());
+ //if (startDate != endDate)
+ //{
+ // textBuilder.Append("鈥�");
+ // textBuilder.Append(endDate.ToDisplay(startDate.year != endDate.year));
+ //}
if (allDay)
{
textBuilder.Append(Language.Get("OpenAllDay"));
--
Gitblit v1.8.0