From f93c57bfd57f97e78c3a00a29f302f5e8c83cdee Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期四, 18 十月 2018 21:43:03 +0800
Subject: [PATCH] 2158【1.2.0】猫耳聊天屏蔽逻辑优化

---
 System/MainInterfacePanel/PlayerTaskDatas.cs |  193 +++++++++++++++++++++++++++++++----------------
 1 files changed, 127 insertions(+), 66 deletions(-)

diff --git a/System/MainInterfacePanel/PlayerTaskDatas.cs b/System/MainInterfacePanel/PlayerTaskDatas.cs
index e593b83..ccc3af9 100644
--- a/System/MainInterfacePanel/PlayerTaskDatas.cs
+++ b/System/MainInterfacePanel/PlayerTaskDatas.cs
@@ -121,13 +121,15 @@
     public int currentMission { get; private set; }
     public int currentMissionState { get; private set; }
 
-    public int GetNowTaskID { get; set; }
+    public int GetNowTaskID { get; set; }//鑾峰彇褰撳墠閫変腑鏉$殑浠诲姟ID
 
     private bool AutomaticityBool = false;//鎺у埗鏄惁鑷姩杩涜鑷姩浠诲姟
     private int retainTaskID = 0;
     private float BossDelayTimeint = 0;
     private List<int> FaBaoNPCIdList = new List<int>();//鐢ㄤ簬鑾峰彇闇�瑕佹秷澶辩殑娉曞疂NPCID锛�
     public Vector3 UIeffectFabaoVec = new Vector3();//娉曞疂NPC娑堝け鏃惰幏鍙栫殑鍧愭爣
+
+
     PlayerPackModel _playerPack;
     PlayerPackModel playerPack
     {
@@ -139,14 +141,14 @@
         StageManager.Instance.onStageLoadFinish += onStageLoadFinish;
         NPCInteractProcessor.s_NpcInteractEvent += NpcInterac;
         FaBaoNPCIdList.Clear();
-        string strFabao = ConfigManager.Instance.GetTemplate<FuncConfigConfig>("FaBaoNPCID").Numerical1;
+        string strFabao = Config.Instance.Get<FuncConfigConfig>("FaBaoNPCID").Numerical1;
         string[] strFabaoNpcID = ConfigParse.GetMultipleStr(strFabao);//瑙f瀽鍑烘暟缁剕
 
         for (int i = 0; i < strFabaoNpcID.Length; i++)
         {
             FaBaoNPCIdList.Add(int.Parse(strFabaoNpcID[i]));
         }
-        string BossDelayTime = ConfigManager.Instance.GetTemplate<FuncConfigConfig>("BossDelayTime").Numerical1;
+        string BossDelayTime = Config.Instance.Get<FuncConfigConfig>("BossDelayTime").Numerical1;
         BossDelayTimeint = float.Parse(BossDelayTime);
     }
 
@@ -183,8 +185,12 @@
 
     public void OnPlayerLoginOk()
     {
+        GlobalTimeEvent.Instance.secondEvent -= secondEvent;
+        GlobalTimeEvent.Instance.secondEvent += secondEvent;
         AutomaticityBool = true;
     }
+
+ 
 
     private void onStageLoadFinish()//鍦板浘鍒囨崲鏃惰皟鐢�
     {
@@ -203,7 +209,11 @@
     {
         try
         {
-            var pytaskM = ConfigManager.Instance.GetTemplate<PyTaskConfig>(MissionID);
+            if (AutomaticityBool && MissionState!=3)
+            {
+                TaskupToDate = MissionID;
+            }
+            var pytaskM = Config.Instance.Get<PyTaskConfig>(MissionID);
             if (pytaskM == null)
             {
                 return;
@@ -219,6 +229,7 @@
 
             if (allMissionDict.ContainsKey(MissionID))
             {
+                int missionState = allMissionDict[MissionID].MissionState;
                 if (allMissionDict[MissionID].MissionState != MissionState && MissionState == 3 && AutomaticityBool)
                 {
                     if (CompletionOfTaskEvent != null)
@@ -228,10 +239,21 @@
                 }
                 TaskChanges(MissionID, MissionState, DiscriptionIndex);//浠诲姟鐨勭姸鎬佷慨鏀�
 
-                if (Event_TaskRefreshes != null)//鍒锋柊浠诲姟
+                if (missionState == 0 && (MissionState == 1 || MissionState==2))
                 {
-                    Event_TaskRefreshes(MissionID);
+                    if (Event_TaskToAdd != null)//浠诲姟娣诲姞锛堢敤浜庡瓨鍌ㄤ簬韬笂鐨勬湭鎺ュ彇浠诲姟鐨勭壒娈婂鐞嗭級
+                    {
+                        Event_TaskToAdd(MissionID, MissionState, DiscriptionIndex);
+                    }
                 }
+                else
+                {
+                    if (Event_TaskRefreshes != null)//鍒锋柊浠诲姟
+                    {
+                        Event_TaskRefreshes(MissionID);
+                    }
+                }
+                
             }
             else
             {
@@ -264,7 +286,7 @@
         }
         catch (Exception ex)
         {
-            DesignDebug.Log(ex);
+            DebugEx.Log(ex.StackTrace);
         }
 
     }
@@ -286,8 +308,12 @@
 
     void DefaultDialogue()//鍏充簬鎵撳紑榛樿瀵硅瘽鐣岄潰
     {
-        bool IsOpenMain = WindowCenter.Instance.CheckOpen<MainInterfaceWin>();
-        if (!WindowCenter.Instance.CheckOpen<DefaultDialogueBoxWin>() && IsOpenMain)
+        if (NewBieCenter.Instance.inGuiding || ModelCenter.Instance.GetModel<TreasureModel>().newGotShowing)
+        {
+            return;
+        }
+        bool IsOpenMain = WindowCenter.Instance.IsOpen<MainInterfaceWin>();
+        if (!WindowCenter.Instance.IsOpen<DefaultDialogueBoxWin>() && IsOpenMain)
         {
             WindowCenter.Instance.Open<DefaultDialogueBoxWin>();
             WindowCenter.Instance.Close<MainInterfaceWin>();
@@ -304,8 +330,8 @@
         {
             return;
         }
-        var config = ConfigManager.Instance.GetTemplate<StoryMissionsConfig>(taskID);
-        bool IsOpenMain = WindowCenter.Instance.CheckOpen<MainInterfaceWin>();
+        var config = Config.Instance.Get<StoryMissionsConfig>(taskID);
+        bool IsOpenMain = WindowCenter.Instance.IsOpen<MainInterfaceWin>();
         var treasureStageUpShow = ModelCenter.Instance.GetModel<TreasureModel>().treasureStageUpShow;
         if (config != null)
         {
@@ -313,7 +339,7 @@
             {
                 if (NPCid == config.NpcID[i])
                 {
-                    if (!WindowCenter.Instance.CheckOpen<DialogueDuidanceWin>() && IsOpenMain
+                    if (!WindowCenter.Instance.IsOpen<DialogueDuidanceWin>() && IsOpenMain
                         && !treasureStageUpShow && !WindowCenter.Instance.ExitAnyFullScreenOrMaskWin())
                     {
                         WindowCenter.Instance.Close<MainInterfaceWin>();
@@ -322,7 +348,7 @@
                     return;
                 }
             }
-            if (!WindowCenter.Instance.CheckOpen<TaskBoxBGMWin>() && IsOpenMain && !treasureStageUpShow)
+            if (!WindowCenter.Instance.IsOpen<TaskBoxBGMWin>() && IsOpenMain && !treasureStageUpShow)
             {
                 WindowCenter.Instance.Close<MainInterfaceWin>();
                 WindowCenter.Instance.Open<TaskBoxBGMWin>();
@@ -332,14 +358,17 @@
             {
                 if (BountyDic.ContainsKey(_TaskNow) || FairyAuDic.ContainsKey(_TaskNow))
                 {
-                    RequestGetTaskAward("OK");
+                    if (!ModelCenter.Instance.GetModel<TeamModel>().teamPrepare.isPreparing)
+                    {
+                        RequestGetTaskAward("OK");
+                    }
                 }
 
             }
         }
         else
         {
-            if (!WindowCenter.Instance.CheckOpen<TaskBoxBGMWin>() && IsOpenMain && !treasureStageUpShow)
+            if (!WindowCenter.Instance.IsOpen<TaskBoxBGMWin>() && IsOpenMain && !treasureStageUpShow)
             {
                 WindowCenter.Instance.Close<MainInterfaceWin>();
                 WindowCenter.Instance.Open<TaskBoxBGMWin>();
@@ -349,7 +378,10 @@
             {
                 if (BountyDic.ContainsKey(_TaskNow) || FairyAuDic.ContainsKey(_TaskNow))
                 {
-                    RequestGetTaskAward("OK");
+                    if (!ModelCenter.Instance.GetModel<TeamModel>().teamPrepare.isPreparing)
+                    {
+                        RequestGetTaskAward("OK");
+                    }               
                 }
             }
         }
@@ -369,10 +401,10 @@
 
     void AddMission(int MissionID, int MissionState, int DiscriptionIndex)//娣诲姞浠诲姟
     {
-        var config = ConfigManager.Instance.GetTemplate<PyTaskConfig>(MissionID);
+        var config = Config.Instance.Get<PyTaskConfig>(MissionID);
         if (config == null)
         {
-            DesignDebug.LogError(MissionID + "琛ㄦ牸涓笉瀛樺湪姝や换鍔D");
+            DebugEx.LogError(MissionID + "琛ㄦ牸涓笉瀛樺湪姝や换鍔D");
             return;
         }
 
@@ -455,13 +487,16 @@
         SideQuestsType17 = 17,//鏀嚎17-21鏂板
         SideQuestsType18 = 18,
         SideQuestsType19 = 19,
-        SideQuestsType20 = 20,
+        SideQuestsType20 = 20,//(鍚庣鐗规畩澶勭悊锛屾殏瀹氫笉璁╀娇鐢�)
         SideQuestsType21 = 21,
     }
 
     void TaskClassification(int _taskID, int MissionState)//浠诲姟鍒嗙被(涓荤嚎浠诲姟,鏀嚎浠诲姟)
     {
-
+        if (!allMissionDict.ContainsKey(_taskID))
+        {
+            return;
+        }
         TaskTypenum type = (TaskTypenum)allMissionDict[_taskID].Type;
         switch (type)
         {
@@ -720,7 +755,7 @@
 
     void TaskChanges(int MissionID, int MissionState, int DiscriptionIndex)//瀛樺湪鐨勪换鍔$殑淇敼
     {
-        var pytaskM = ConfigManager.Instance.GetTemplate<PyTaskConfig>(MissionID);
+        var pytaskM = Config.Instance.Get<PyTaskConfig>(MissionID);
         if (pytaskM == null)
             return;
         allMissionDict[MissionID].Time = DateTime.Now;
@@ -805,7 +840,7 @@
                 dic.Add(info.DictKey, (int)info.DictValue);
             }
         }
-       
+
     }
 
     public void RequestGetTaskAward(string _answer)
@@ -841,9 +876,14 @@
             {
                 if (MainTaskDic.ContainsKey(_MissionId) && MainCardLevelChange != null && _DictValue == 0)
                 {
+                   
+                    if (IsGetOnBool)
+                    {
+                        GetNowTaskID = _MissionId;
+                    }
                     MainCardLevelChange(_MissionId);
+                    
                 }
-
             }
         }
         else
@@ -851,15 +891,22 @@
             if (_DicTaskInformation[_MissionId].ContainsKey(_DictKey))
             {
                 _DicTaskInformation[_MissionId][_DictKey] = _DictValue.ToString();
-                if (_DictKey == "kaji" && _DictValue == 0)
+                if (_DictKey == "kaji" && (_DictValue == 0|| _DictValue == 1))//kaji:0涓轰富绾垮崱绾у彉鏇达紝kaji:1涓洪瓟鏃忓崱绾у彉鏇�
                 {
                     if (CardLevelChange != null)
                     {
                         CardLevelChange(_MissionId);
                     }
-                    if (MainTaskDic.ContainsKey(_MissionId) && MainCardLevelChange != null)
-                    {
-                        MainCardLevelChange(_MissionId);
+                    if (MainTaskDic.ContainsKey(_MissionId))
+                    {                    
+                        if (IsGetOnBool)
+                        {
+                            GetNowTaskID = _MissionId;
+                        }
+                        if (MainCardLevelChange != null)
+                        {
+                            MainCardLevelChange(_MissionId);
+                        }
                     }
                 }
             }
@@ -878,13 +925,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;
@@ -976,15 +1026,6 @@
                     }
                 }
             }
-
-            //if (_NpcID == allMissionDict[key].LightList.NpcId)
-            //{
-            //    if (allMissionDict[key].LightList.StateLight > Light)
-            //    {
-            //        Light = allMissionDict[key].LightList.StateLight;
-            //    }
-
-            //}
         }
 
         return Light;
@@ -1003,7 +1044,6 @@
                     return;
                 }
             }
-
         }
         if (FairyAuDic.Count != 0)
         {
@@ -1017,8 +1057,6 @@
                 }
             }
         }
-
-
     }
     public void DailyBountyMove()//鏃ュ父璧忛噾浠诲姟
     {
@@ -1033,7 +1071,6 @@
                     return;
                 }
             }
-
         }
         if (BountyDic.Count != 0)
         {
@@ -1047,7 +1084,6 @@
                 }
             }
         }
-
     }
 
 
@@ -1070,7 +1106,6 @@
                 }
             }
         }
-
     }
 
     private int Autotasking(int taskID)
@@ -1134,7 +1169,6 @@
                         return;
                     }
                 }
-
             }
             else if (FairyAuDic.ContainsKey(_taskID))//浠欑洘浠诲姟
             {
@@ -1165,7 +1199,7 @@
         }
         catch (Exception ex)
         {
-            DesignDebug.Log(ex);
+            DebugEx.Log(ex);
         }
     }
 
@@ -1228,7 +1262,7 @@
         var _singleModel = PlayerBackModel.GetSinglePackModel(PackType.rptEquip);
         // 濡傛灉鏈夊畧鎶�, 鍒欎笉鎷惧彇
         var _itemModel = _singleModel.GetItemModelByIndex((int)RoleEquipType.retSpiritAnimal);
-        if (_itemModel == null || !GeneralConfig.Instance.GuardianPickUpID.Contains(_itemModel.itemId))
+        if (_itemModel == null || !GeneralDefine.GuardianPickUpID.Contains(_itemModel.itemId))
         {
             float _chkDistanceSqrt;
             DropItemManager.DropObject _obj = null;
@@ -1238,7 +1272,6 @@
                 {
                     break;
                 }
-
                 if (MapTransferUtility.Instance.MapTransferDoType != MapTransferUtility.E_MapTransferDoType.None)
                 {
                     break;
@@ -1262,12 +1295,12 @@
             yield break;
         }
 
-        if (WindowCenter.Instance.CheckOpen<TreasureLevelUpWin>())
+        if (WindowCenter.Instance.IsOpen<TreasureLevelUpWin>())
         {
             yield break;
         }
 
-        if (WindowCenter.Instance.CheckOpen<MysteriousMissionWin>())
+        if (WindowCenter.Instance.IsOpen<MysteriousMissionWin>())
         {
             yield break;
         }
@@ -1287,14 +1320,14 @@
             {
                 // GetNowTaskID = _taskID;
                 string _strTest = allMissionDict[_taskID].InforList;
-                string strTask = TaskAllocation.Instance.GetTaskInfo(ConfigManager.Instance.GetTemplate<TASKINFOConfig>(_strTest).show_writing, _taskID);
+                string strTask = TaskAllocation.Instance.GetTaskInfo(Config.Instance.Get<TASKINFOConfig>(_strTest).show_writing, _taskID);
                 HrefAnalysis.Inst.ExcuteHrefEvent(strTask);
                 DropItemManager.StopMissionPickup = false;
             }
         }
         catch (Exception ex)
         {
-            DesignDebug.Log(ex);
+            DebugEx.Log(ex);
         }
 
     }
@@ -1361,13 +1394,12 @@
                     GA_NpcFunc.SetNpcFuncVisible(Npcid, true);
                 }
             }
-
         }
     }
 
     public enum TaskStatus//浠诲姟鐘舵��
     {
-        None=-5,//娌℃湁
+        None = -5,//娌℃湁
         Normal = 0,//姝e父浠诲姟锛堢豢锛�
         TreasureCardLevel = 1,//娉曞疂鍗$骇锛堢孩锛�
         CardLevel = 2,//绛夌骇鍗$骇锛堢孩锛�
@@ -1402,12 +1434,12 @@
     private bool IsDungeon()//鍒ゆ柇鏄惁鍦ㄥ壇鏈腑
     {
         var mapId = PlayerDatas.Instance.baseData.MapID;
-        var mapConfig = ConfigManager.Instance.GetTemplate<MapConfig>(mapId);
+        var mapConfig = Config.Instance.Get<MapConfig>(mapId);
         return mapConfig != null && mapConfig.MapFBType != 0;
     }
     public bool IsGather(int npdId)//鏄惁鑳介噰闆哊PC
     {
-        var taskListConfig = ConfigManager.Instance.GetTemplate<TaskListConfig>(currentMission);
+        var taskListConfig = Config.Instance.Get<TaskListConfig>(currentMission);
         if (taskListConfig != null)
         {
             int[] collectNPCList = taskListConfig.CollectNPC;
@@ -1429,18 +1461,18 @@
 
     public static bool IsOPenAutoResolve()//浠诲姟闈㈡澘涓嶅紑鍚嚜鍔ㄦ寕鏈虹姸鎬�
     {
-        WindowCenter.Instance.CheckOpen<DefaultDialogueBoxWin>();
-        WindowCenter.Instance.CheckOpen<DialogueDuidanceWin>();
+        WindowCenter.Instance.IsOpen<DefaultDialogueBoxWin>();
+        WindowCenter.Instance.IsOpen<DialogueDuidanceWin>();
         bool _bool = true;
-        if (WindowCenter.Instance.CheckOpen<TaskBoxBGMWin>())
+        if (WindowCenter.Instance.IsOpen<TaskBoxBGMWin>())
         {
             _bool = false;
         }
-        else if (WindowCenter.Instance.CheckOpen<DefaultDialogueBoxWin>())
+        else if (WindowCenter.Instance.IsOpen<DefaultDialogueBoxWin>())
         {
             _bool = false;
         }
-        else if (WindowCenter.Instance.CheckOpen<DialogueDuidanceWin>())
+        else if (WindowCenter.Instance.IsOpen<DialogueDuidanceWin>())
         {
             _bool = false;
         }
@@ -1455,12 +1487,12 @@
         {
             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();
-            var config = ConfigManager.Instance.GetTemplate<MapEventPointConfig>(point);
+            var config = Config.Instance.Get<MapEventPointConfig>(point);
             MapTransferUtility.Instance.MoveToNPC(config.NPCID);
 
         }
@@ -1483,7 +1515,6 @@
         {
             return -1;
         }
-
     }
 
     public int GetQuestState(int _taskId)
@@ -1497,5 +1528,35 @@
             return -1;
         }
     }
+    //--------涓昏鐢ㄤ簬璁板綍浠诲姟鍒楄〃閫変腑鏉$殑鏅鸿兘鎬� 锛�-_-||锛�
+    public int TaskupToDate = 0;//鑾峰彇鏈�鏂颁换鍔D
+    public int GetOnTaskId = 0;
+    public bool IsGetOnBool = false;
+    private  int NeedTime = 10;
+    private DateTime dateTimeA;
+    public void  GetTaskGetOnNow(int TaskID, string DictKey)//璁板綍涓嬩俊鎭瓧鍏哥殑ID
+    {
+        string key1Str = "on_kill_" + TaskID;
+        string key2Str = "get_byid_" + TaskID;
+        if (TaskID > 1 && (key1Str== DictKey || key2Str== DictKey))
+        {
+            GetOnTaskId = TaskID;
+            dateTimeA =DateTime.Now;
+        }
 
+    }
+    private void secondEvent()
+    {
+        TimeSpan timeS =DateTime.Now- dateTimeA;
+        int timeSend = timeS.Seconds;
+        if (timeSend >= NeedTime)
+        {
+            IsGetOnBool = true;
+            GetOnTaskId = GetNowTaskID;//鑾峰彇褰撳墠閫変腑鐨処D 
+        }
+        else
+        {
+            IsGetOnBool = false;
+        }
+    }
 }

--
Gitblit v1.8.0