From 6c29c1c6ad0c196c7ef5abf4ef447370a170f2ff Mon Sep 17 00:00:00 2001
From: ZXW <826696702@qq.com>
Date: 星期五, 10 八月 2018 11:11:44 +0800
Subject: [PATCH] 关于任务列表丢失 任务数据防护提交【1520】

---
 System/MainInterfacePanel/PlayerTaskDatas.cs |   22 ++++++++++++++--------
 System/MainInterfacePanel/SideMission.cs     |   16 +++++++++++++++-
 2 files changed, 29 insertions(+), 9 deletions(-)

diff --git a/System/MainInterfacePanel/PlayerTaskDatas.cs b/System/MainInterfacePanel/PlayerTaskDatas.cs
index e593b83..badbe13 100644
--- a/System/MainInterfacePanel/PlayerTaskDatas.cs
+++ b/System/MainInterfacePanel/PlayerTaskDatas.cs
@@ -461,7 +461,10 @@
 
     void TaskClassification(int _taskID, int MissionState)//浠诲姟鍒嗙被(涓荤嚎浠诲姟,鏀嚎浠诲姟)
     {
-
+        if (!allMissionDict.ContainsKey(_taskID))
+        {
+            return;
+        }
         TaskTypenum type = (TaskTypenum)allMissionDict[_taskID].Type;
         switch (type)
         {
@@ -805,7 +808,7 @@
                 dic.Add(info.DictKey, (int)info.DictValue);
             }
         }
-       
+
     }
 
     public void RequestGetTaskAward(string _answer)
@@ -878,13 +881,16 @@
         if (allMissionDict.ContainsKey(_taskID))
         {
             allMissionDict.Remove(_taskID);
-            _DicTaskInformation.Remove(_taskID);
+            if (_DicTaskInformation.ContainsKey(_taskID))
+            {
+                _DicTaskInformation.Remove(_taskID);
+            }
         }
         TaskTypeDeletion(_taskID);
         if (Event_TaskToDelete != null)
+        {
             Event_TaskToDelete(_taskID);
-
-
+        }
     }
     bool _bool = false;
     string _conversationA = null;
@@ -1367,7 +1373,7 @@
 
     public enum TaskStatus//浠诲姟鐘舵��
     {
-        None=-5,//娌℃湁
+        None = -5,//娌℃湁
         Normal = 0,//姝e父浠诲姟锛堢豢锛�
         TreasureCardLevel = 1,//娉曞疂鍗$骇锛堢孩锛�
         CardLevel = 2,//绛夌骇鍗$骇锛堢孩锛�
@@ -1455,8 +1461,8 @@
         {
             return;
         }
-        if ((taskID == BOUNTYTASK && MissionState == 1 && !BountyMotionBool && TaskAllocation.Instance.ForRingAllNumber()!=10)
-            || (taskID == FAIRYAUTASK && MissionState == 1 && !FairyAuBool && TaskAllocation.Instance.FairyAuAllNumber()==70))
+        if ((taskID == BOUNTYTASK && MissionState == 1 && !BountyMotionBool && TaskAllocation.Instance.ForRingAllNumber() != 10)
+            || (taskID == FAIRYAUTASK && MissionState == 1 && !FairyAuBool && TaskAllocation.Instance.FairyAuAllNumber() == 70))
         {
             var mapModel = ModelCenter.Instance.GetModel<MapModel>();
             var point = mapModel.GetRecommendHangPoint();
diff --git a/System/MainInterfacePanel/SideMission.cs b/System/MainInterfacePanel/SideMission.cs
index 313c384..3319c96 100644
--- a/System/MainInterfacePanel/SideMission.cs
+++ b/System/MainInterfacePanel/SideMission.cs
@@ -89,7 +89,17 @@
                 {
                     sideMissionTitleBtton.PitchOnImage.SetActive(false);
                 }
-                sideMissionTitleBtton.TitleName.text= ConfigManager.Instance.GetTemplate<TASKINFOConfig>(taskmodel.SideQuestsDic[TaskId].Name).show_writing;//浠诲姟鍚�
+                var taskname = taskmodel.SideQuestsDic[TaskId].Name;
+                if (ConfigManager.Instance.GetTemplate<TASKINFOConfig>(taskname) == null)
+                {
+                    DesignDebug.LogError("TASKINFO浠诲姟琛ㄦ牸娌℃湁鑾峰彇鍒拌浠诲姟鍚嶇О"+ taskname);
+                    return;
+                }
+                sideMissionTitleBtton.TitleName.text= ConfigManager.Instance.GetTemplate<TASKINFOConfig>(taskname).show_writing;//浠诲姟鍚�
+                if (!taskmodel.SideQuestsDic.ContainsKey(TaskId))
+                {
+                    return;
+                }
                 sideMissionTitleBtton.Text_RamusState.text = GegionalTaskStatus(taskmodel.SideQuestsDic[TaskId].MissionState);
                 sideMissionTitleBtton.SideMissionTitleBtton1.RemoveAllListeners();
                 sideMissionTitleBtton.SideMissionTitleBtton1.AddListener(()=> 
@@ -105,6 +115,10 @@
 
         void Information(int taskID)
         {
+            if (!taskmodel.SideQuestsDic.ContainsKey(taskID))
+            {
+                return;
+            }
             _Text_TaskName.text = ConfigManager.Instance.GetTemplate<TASKINFOConfig>(taskmodel.SideQuestsDic[taskID].Name).show_writing;//浠诲姟鍚�
             _Text_TaskDescribe.text = ConfigManager.Instance.GetTemplate<TASKINFOConfig>(taskmodel.SideQuestsDic[taskID].Desclist).show_writing;//浠诲姟鎻忚堪
             string strINfor = taskmodel.SideQuestsDic[taskID].InforList;

--
Gitblit v1.8.0