From bc3ef06580fa2818b21221afb7902cf3e4c89568 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期一, 25 二月 2019 15:14:21 +0800
Subject: [PATCH] 3335 物品相关类型重构

---
 System/MainInterfacePanel/TaskModel.cs | 3206 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 1,603 insertions(+), 1,603 deletions(-)

diff --git a/System/MainInterfacePanel/PlayerTaskDatas.cs b/System/MainInterfacePanel/TaskModel.cs
similarity index 99%
rename from System/MainInterfacePanel/PlayerTaskDatas.cs
rename to System/MainInterfacePanel/TaskModel.cs
index 793edcd..b4cbb02 100644
--- a/System/MainInterfacePanel/PlayerTaskDatas.cs
+++ b/System/MainInterfacePanel/TaskModel.cs
@@ -1,1603 +1,1603 @@
-锘縰sing System;
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-using LitJson;
-using System.Text.RegularExpressions;
-using System.Text;
-using Snxxz.UI;
-//浠诲姟淇℃伅鐨勫瓨鍌�
-
-/** 浠诲姟缁撴瀯 */
-public class MissionDetailDates
-{
-    public DateTime Time;//璁板綍鏃堕棿
-    public int ID;//浠诲姟ID
-    public string Name;//浠诲姟鍚嶇О
-    public int Type;//浠诲姟绫诲瀷
-    public int NPC_ID;//璧峰NPCID
-    public int LV;//鍙帴绛夌骇
-    public int ColorLV;//浠诲姟闅惧害
-    public string Desclist;//浠诲姟璇︽儏
-    public string RewardList;//濂栧姳淇℃伅
-    public List<TsakLight> LightList;//浠诲姟鐏俊鎭�
-    public string InforList;//浠诲姟瀹屾垚鏉′欢
-    public int MissionState;//浠诲姟鐘舵��0鏈帴锛�1杩涜涓紝2鍙彁浜わ紝3宸插畬鎴�,6鐗规畩鍗$骇
-    public int descIndex;//浠诲姟鎻忚堪绱㈠紩
-}
-
-
-public class MissionDict//浠诲姟瀛楀吀淇℃伅
-{
-    public int MissionId;//浠诲姟ID 
-
-    public int DictKeyLen;//浠诲姟瀛楀吀涓殑鏌愪釜Key
-
-    public string DictKey;//key鐨勯暱搴�
-
-    public int DictValue;//璇ey瀵瑰簲鐨勫��
-
-
-}
-public class RunTaskAwardRecord
-{
-    public int Num;
-    public int AwardState;
-}
-
-public struct TsakLight
-{
-    public int NpcId;
-    public int StateLight;
-}
-
-
-public class TaskModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
-{
-
-    /** 浠诲姟鎬绘竻鍗� */
-    public static bool _globalbool = false;
-    public Dictionary<int, MissionDetailDates> allMissionDict = new Dictionary<int, MissionDetailDates>();//浠诲姟鍒濆鍖栨帴鏀跺瓧鍏�
-    public Dictionary<int, MissionDetailDates> MainTaskDic = new Dictionary<int, MissionDetailDates>();//涓荤嚎浠诲姟瀛楀吀
-    public Dictionary<int, MissionDetailDates> SideQuestsDic = new Dictionary<int, MissionDetailDates>();//鏀嚎浠诲姟瀛楀吀
-    public Dictionary<int, MissionDetailDates> BountyDic = new Dictionary<int, MissionDetailDates>();//璧忛噾浠诲姟
-    public Dictionary<int, MissionDetailDates> FairyAuDic = new Dictionary<int, MissionDetailDates>();//浠欑洘浠诲姟
-    public Dictionary<int, MissionDetailDates> SpecialTask = new Dictionary<int, MissionDetailDates>();//鐗规畩浠诲姟绫诲瀷
-    public Dictionary<int, Dictionary<string, string>> _DicTaskInformation = new Dictionary<int, Dictionary<string, string>>();//浠诲姟瀛楀吀鐨勪俊鎭�
-    public Dictionary<int, Dictionary<string, int>> ReplaceDic = new Dictionary<int, Dictionary<string, int>>();//key鍊兼浛鎹㈠瓧鍏�
-    public Dictionary<int, RunTaskAwardRecord> AwardRecordDic = new Dictionary<int, RunTaskAwardRecord>();//璺戠幆濂栧姳璁板綍
-    public Dictionary<int, int> NPCShowDic = new Dictionary<int, int>();//鍏充簬NPC鐨勬樉闅愰棶棰�
-    public delegate void OnTaskToAdd(int MissionID, int MissionState, int DiscriptionIndex);
-    public static event OnTaskToAdd Event_TaskToAdd;//浠诲姟娣诲姞
-    public delegate void OnTaskRefreshes(int _taskId);
-    public static event OnTaskRefreshes Event_TaskRefreshes;//浠诲姟鐨勫埛鏂�
-    public delegate void OnBounty();//璧忛噾浠诲姟鐨勬坊鍔�
-    public static event OnBounty Event_nBounty;
-    public delegate void OnFairyAuTask();//浠欑洘浠诲姟鐨勬坊鍔犲拰鍒锋柊
-    public static event OnFairyAuTask Event_FairyAuTask;
-
-    public delegate void OnTaskInformation(int _id, Dictionary<int, Dictionary<string, string>> _Dic);
-    public static event OnTaskInformation Event_TaskInformation;//浠诲姟瀛楀吀淇℃伅
-
-    public delegate void OnTaskToDelete(int _taskID);
-    public static event OnTaskToDelete Event_TaskToDelete;//浠诲姟鐨勫垹闄�
-
-    public delegate void OnBountyRewards(int Number, int AwardState);//鑾峰彇璧忛噾濂栧姳
-    public static event OnBountyRewards Event_BountyRewards;
-    public int BountyRewardsNumber = 0;//鑾峰彇璧忛噾鍐呭鐨勫鍔卞��
-
-    public delegate void OnFairyAuReward(int Number, int AwardState);//浠欑洘濂栧姳
-    public static event OnFairyAuReward Event_FairyAuReward;
-    public int OnFairyAuNumber = 0;//鑾峰彇浠欑洘鐨勫鍔卞��
-
-    public string _conversation = null;//瀵硅瘽鍐呭銆�
-    public int _TaskNow = 0;//鑾峰彇褰撳墠浠诲姟ID
-    public string _DefaultDialogContent = null;//榛樿瀵硅瘽鍐呭
-
-    public delegate void OnMainlineTask(int MissionID, int MissionState);//涓荤嚎浠诲姟浠诲姟鐘舵�佸彉鏇村拰鍒锋柊
-    public static event OnMainlineTask Event_MainlineTask;
-
-    public delegate void OnTaskResponse(int _nowNPCid, int _nPCLamp, Dictionary<int, int> _dic = null);//NPCNPC鐏姸鎬侊紝鍙帴鍙栦换鍔★紙NPCID锛屼换鍔$伅鐘舵�侊級
-    public static event OnTaskResponse Event_TaskResponse;
-
-    public static event Action tryGetTaskAwardEvent;//杩欎釜鏄鎴风鍙灏濊瘯鍘婚濂栧氨浼氳Е鍙戯紝涓嶇鏈�鍚庣殑棰嗗缁撴灉銆�
-
-    public static event Action<int> CardLevelChange;//鍏充簬浠诲姟鍗℃満鐘舵�佺殑杞彉
-
-    public static event Action<int> SideQuestChangeEvent;//鏀嚎浠诲姟鐘舵�佹敼鍙�
-
-    public static event Action<int> MainCardLevelChange;//涓荤嚎浠诲姟鍗$骇鐘舵�佹敼鍙�
-
-    public static event Action<int> CompletionOfTaskEvent;//浠诲姟瀹屾垚鍥炶皟
-
-    public static event Action TaskCoinTaskEvent;//璧忛噾浠诲姟淇℃伅瀛楀吀鍙樻洿
-    public static event Action FairyTaskEvent;//浠欑洘浠诲姟淇℃伅瀛楀吀鍙樻洿
-
-    public int NPCid = 0;//鑾峰彇NPCID锛堟墦寮�浠诲姟闈㈡澘鏃讹級銆�
-
-    public bool BountyMotionBool = false;//鎺у埗璧忛噾浠诲姟鏄惁鑷姩绉诲姩
-    public bool FairyAuBool = false;//鎺у埗浠欑洘浠诲姟鏄惁鑷姩绉诲姩
-    public int currentMission { get; private set; }
-    public int currentMissionState { get; private 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娑堝け鏃惰幏鍙栫殑鍧愭爣
-    //----鍏充簬鍓嶆湡鏃犳搷浣滆嚜鍔ㄦ墽琛屼富绾�
-    public int TaskAutoLv = 0;
-    public int TaskAutoTime = 0;
-    PackModel _playerPack;
-    PackModel playerPack {
-        get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PackModel>()); }
-    }
-
-    public override void Init()
-    {
-        StageLoad.Instance.onStageLoadFinish += onStageLoadFinish;
-        NPCInteractProcessor.s_NpcInteractEvent += NpcInterac;
-        FaBaoNPCIdList.Clear();
-        string strFabao = FuncConfigConfig.Get("FaBaoNPCID").Numerical1;
-        string[] strFabaoNpcID = ConfigParse.GetMultipleStr(strFabao);//瑙f瀽鍑烘暟缁剕
-
-        for (int i = 0; i < strFabaoNpcID.Length; i++)
-        {
-            FaBaoNPCIdList.Add(int.Parse(strFabaoNpcID[i]));
-        }
-        string BossDelayTime = FuncConfigConfig.Get("BossDelayTime").Numerical1;
-        BossDelayTimeint = float.Parse(BossDelayTime);
-        var Task_Auto = FuncConfigConfig.Get("TaskAuto");
-        TaskAutoLv = int.Parse(Task_Auto.Numerical1);
-        TaskAutoTime = int.Parse(Task_Auto.Numerical2);
-    }
-
-    public override void UnInit()
-    {
-        StageLoad.Instance.onStageLoadFinish -= onStageLoadFinish;
-        NPCInteractProcessor.s_NpcInteractEvent -= NpcInterac;
-    }
-
-    public void OnBeforePlayerDataInitialize()
-    {
-        allMissionDict.Clear();
-        MainTaskDic.Clear();
-        SideQuestsDic.Clear();
-        BountyDic.Clear();
-        FairyAuDic.Clear();
-        SpecialTask.Clear();
-        _DicTaskInformation.Clear();
-        ReplaceDic.Clear();
-        AwardRecordDic.Clear();
-        NPCShowDic.Clear();
-        _conversation = null;
-        _DefaultDialogContent = null;
-        _TaskNow = 0;
-        BountyRewardsNumber = 0;
-        NPCid = 0;
-        retainTaskID = 0;
-        currentMission = 0;
-        _globalbool = false;
-        BountyMotionBool = false;
-        FairyAuBool = false;
-        AutomaticityBool = false;
-    }
-
-    public void OnPlayerLoginOk()
-    {
-        GlobalTimeEvent.Instance.secondEvent -= secondEvent;
-        GlobalTimeEvent.Instance.secondEvent += secondEvent;
-        TaskAllocation.Instance.TaskTime = TimeUtility.ServerNow;
-        AutomaticityBool = true;
-    }
-
-
-
-    private void onStageLoadFinish()//鍦板浘鍒囨崲鏃惰皟鐢�
-    {
-        var inDungeon = IsDungeon();
-        if (!inDungeon && retainTaskID != 0)
-        {
-            if (ReplaceDic.ContainsKey(retainTaskID))
-            {
-                AutomaticTripToTask(retainTaskID);
-                //int missionState = SideQuestState(retainTaskID);
-                //TaskTerminationToHangUp(retainTaskID, missionState);
-                retainTaskID = 0;
-            }
-        }
-    }
-    List<int> ListMissionID = new List<int>();
-    public void RefreshMissionState(int MissionID, int MissionState, int DiscriptionIndex)//1.浠诲姟ID,2浠诲姟鐘舵�侊紝3锛屼换鍔℃弿杩癐ndex(鎺ユ敹浠诲姟)
-    {
-        try
-        {
-            if (AutomaticityBool && MissionState != 3 && MissionID != 2000 && MissionID != 3000)
-            {
-                TaskupToDate = MissionID;
-            }
-            var pytaskM = PyTaskConfig.Get(MissionID);
-            if (pytaskM == null)
-            {
-                return;
-            }
-            if ((pytaskM.type == (int)TaskTypenum.MainlineTaskType || pytaskM.type == (int)TaskTypenum.MainlineTaskTyp2) && MissionState != 0 && MissionState != 3)
-            {
-                currentMission = MissionID;
-                currentMissionState = MissionState;
-                if (Event_MainlineTask != null)
-                    Event_MainlineTask(MissionID, MissionState);
-            }
-
-
-            if (allMissionDict.ContainsKey(MissionID))
-            {
-                int missionState = allMissionDict[MissionID].MissionState;
-                if (allMissionDict[MissionID].MissionState != MissionState && MissionState == 3 && AutomaticityBool)
-                {
-                    if (CompletionOfTaskEvent != null)
-                    {
-                        CompletionOfTaskEvent(MissionID);
-                    }
-                }
-                TaskChanges(MissionID, MissionState, DiscriptionIndex);//浠诲姟鐨勭姸鎬佷慨鏀�
-
-                if (missionState == 0 && (MissionState == 1 || MissionState == 2))
-                {
-                    if (Event_TaskToAdd != null)//浠诲姟娣诲姞锛堢敤浜庡瓨鍌ㄤ簬韬笂鐨勬湭鎺ュ彇浠诲姟鐨勭壒娈婂鐞嗭級
-                    {
-                        Event_TaskToAdd(MissionID, MissionState, DiscriptionIndex);
-                    }
-                }
-                else
-                {
-                    if (Event_TaskRefreshes != null)//鍒锋柊浠诲姟
-                    {
-                        Event_TaskRefreshes(MissionID);
-                    }
-                }
-
-            }
-            else
-            {
-                AddMission(MissionID, MissionState, DiscriptionIndex);//浠诲姟鐨勬坊鍔�
-                if (Event_TaskToAdd != null)
-                {
-                    Event_TaskToAdd(MissionID, MissionState, DiscriptionIndex);
-                }
-            }
-            TaskClassification(MissionID, MissionState);//浠诲姟鍒嗙被
-            IsShowNpC(1);//鏄惁鏄剧ずNPC
-            IsShowNpC(MissionID);//鏄惁鏄剧ずNPC
-            if (AutomaticityBool)
-            {
-                AutotaskingPrecedence(AutomaticityBool, MissionID);//鏄惁鎵ц鑷姩浠诲姟
-            }
-            TaskTerminationToHangUp(MissionID, MissionState);//缁撴潫璧忛噾鍜屼粰鐩熶换鍔″墠寰�鎸傛満
-            if (Event_TaskResponse != null)//鍙戦�佷换鍔$伅淇℃伅
-            {
-                if (allMissionDict[MissionID].LightList.Equals(default(TsakLight)))
-                {
-                    return;
-                }
-                for (int i = 0; i < allMissionDict[MissionID].LightList.Count; i++)
-                {
-                    Event_TaskResponse(allMissionDict[MissionID].LightList[i].NpcId, allMissionDict[MissionID].LightList[i].StateLight);
-                }
-
-            }
-        }
-        catch (Exception ex)
-        {
-            DebugEx.Log(ex.StackTrace);
-        }
-
-    }
-
-    void NpcInterac(E_NpcType equip, int NPcID, uint instanceId)//鏈嶅姟鍣ㄥ彂鍖咃紙NPCID锛屼汉鐗╀綅缃級
-    {
-        float Posx = PlayerDatas.Instance.hero.Pos.x * 2;
-        float PosY = PlayerDatas.Instance.hero.Pos.z * 2;
-        if (BossInfoConfig.GetBossInfoByStoneId(NPcID) != null)
-        {
-            return;
-        }
-
-        if (CrossServerUtility.IsCrossServer())
-        {
-            var  sendInfo = new CC106_tagCMCrossNPCTalk();
-            sendInfo.ObjID = instanceId;
-            sendInfo.NPCID = (uint)NPcID;
-            sendInfo.PosX = (ushort)Posx;
-            sendInfo.PosY = (ushort)PosY;
-            GameNetSystem.Instance.SendInfo(sendInfo);
-        }
-        else
-        {
-            C0801_tagCNPCTalk _C0801 = new C0801_tagCNPCTalk();
-            _C0801.NPCID = instanceId;
-            _C0801.PosX = (ushort)Posx;
-            _C0801.PosY = (ushort)PosY;
-            GameNetSystem.Instance.SendInfo(_C0801);
-        }
-    }
-
-    void DefaultDialogue()//鍏充簬鎵撳紑榛樿瀵硅瘽鐣岄潰
-    {
-        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>();
-        }
-    }
-    private void OnEventTalkEvent(int taskID)//NPC瀵硅瘽鍚庣殑寮规
-    {
-        //if (WindowCenter.Instance.ExitAnyFullScreenOrMaskWin())
-        //{
-        //    return;
-        //}
-        if (NewBieCenter.Instance.inGuiding || ModelCenter.Instance.GetModel<TreasureModel>().newGotShowing)
-        {
-            return;
-        }
-        var config = StoryMissionsConfig.Get(taskID);
-        bool IsOpenMain = WindowCenter.Instance.IsOpen<MainInterfaceWin>();
-        var treasureStageUpShow = ModelCenter.Instance.GetModel<TreasureModel>().treasureStageUpShow;
-        if (config != null)
-        {
-            for (int i = 0; i < config.NpcID.Length; i++)
-            {
-                if (NPCid == config.NpcID[i])
-                {
-                    if (!WindowCenter.Instance.IsOpen<DialogueDuidanceWin>() && IsOpenMain
-                        && !treasureStageUpShow && !WindowCenter.Instance.ExistAnyFullScreenOrMaskWin())
-                    {
-                        WindowCenter.Instance.Close<MainInterfaceWin>();
-                        WindowCenter.Instance.Open<DialogueDuidanceWin>();
-                    }
-                    return;
-                }
-            }
-            if (!WindowCenter.Instance.IsOpen<TaskBoxBGMWin>() && IsOpenMain && !treasureStageUpShow)
-            {
-                WindowCenter.Instance.Close<MainInterfaceWin>();
-                WindowCenter.Instance.Open<TaskBoxBGMWin>();
-                return;
-            }
-            else
-            {
-                if (BountyDic.ContainsKey(_TaskNow) || FairyAuDic.ContainsKey(_TaskNow))
-                {
-                    if (!ModelCenter.Instance.GetModel<TeamModel>().teamPrepare.isPreparing)
-                    {
-                        RequestGetTaskAward("OK");
-                    }
-                }
-            }
-        }
-        else
-        {
-            if (!WindowCenter.Instance.IsOpen<TaskBoxBGMWin>() && IsOpenMain && !treasureStageUpShow)
-            {
-                WindowCenter.Instance.Close<MainInterfaceWin>();
-                WindowCenter.Instance.Open<TaskBoxBGMWin>();
-                return;
-            }
-            else
-            {
-                if (BountyDic.ContainsKey(_TaskNow) || FairyAuDic.ContainsKey(_TaskNow))
-                {
-                    if (!ModelCenter.Instance.GetModel<TeamModel>().teamPrepare.isPreparing)
-                    {
-                        RequestGetTaskAward("OK");
-                    }
-                }
-            }
-        }
-
-    }
-
-
-    private void BountySelfMotion()
-    {
-        int blank = playerPack.GetEmptyGridCount(PackType.Item);
-        if (blank < 1)//"璇峰厛娓呯悊鑳屽寘鍐嶉鍙栧鍔�
-        {
-            return;
-        }
-
-    }
-
-    void AddMission(int MissionID, int MissionState, int DiscriptionIndex)//娣诲姞浠诲姟
-    {
-        var config = PyTaskConfig.Get(MissionID);
-        if (config == null)
-        {
-            DebugEx.LogError(MissionID + "琛ㄦ牸涓笉瀛樺湪姝や换鍔D");
-            return;
-        }
-
-        if (allMissionDict == null)
-            allMissionDict = new Dictionary<int, MissionDetailDates>();
-        MissionDetailDates vDetailData = new MissionDetailDates();
-        vDetailData.Time = DateTime.Now;
-        vDetailData.ID = int.Parse(config.id);
-        vDetailData.Name = config.name;
-        vDetailData.Type = config.type;
-        vDetailData.NPC_ID = config.npcId;
-        vDetailData.LV = config.lv;
-        vDetailData.ColorLV = config.colorLV;
-
-        vDetailData.RewardList = RewardInformation(config.rewardList, DiscriptionIndex);//濂栧姳淇℃伅
-        if (ReplaceDic.ContainsKey(MissionID))
-        {
-            Dictionary<string, int> _dic = ReplaceDic[MissionID];
-            if (_dic.ContainsKey("visit_npc_id") || _dic.ContainsKey("kill_npc_id"))
-            {
-                vDetailData.LightList = CharactersReplace(config.lightList, DiscriptionIndex, int.Parse(config.id));
-            }
-            else
-            {
-                vDetailData.LightList = StrSegmentation(config.lightList, DiscriptionIndex);//浠诲姟淇℃伅鐏�
-            }
-            if (MissionState == 3)
-            {
-                for (int i = 0; i < vDetailData.LightList.Count; i++)
-                {
-                    TsakLight TsakLight = new TsakLight();
-                    TsakLight.NpcId = vDetailData.LightList[i].NpcId;
-                    TsakLight.StateLight = -1;
-                    vDetailData.LightList[i] = TsakLight;
-                }
-            }
-        }
-        else
-        {
-            vDetailData.LightList = StrSegmentation(config.lightList, DiscriptionIndex);//浠诲姟淇℃伅鐏�
-            if (MissionState == 3)
-            {
-                for (int i = 0; i < vDetailData.LightList.Count; i++)
-                {
-                    TsakLight TsakLight = new TsakLight();
-                    TsakLight.NpcId = vDetailData.LightList[i].NpcId;
-                    TsakLight.StateLight = -1;
-                    vDetailData.LightList[i] = TsakLight;
-                }
-            }
-        }
-        vDetailData.Desclist = TaskDetails(config.descList, DiscriptionIndex);//浠诲姟璇︽儏
-        vDetailData.InforList = StrInforList(config.infoList, DiscriptionIndex);//浠诲姟瀹屾垚鏉′欢
-
-
-        vDetailData.MissionState = MissionState;
-        vDetailData.descIndex = DiscriptionIndex;
-
-        GetNowTaskID = MissionID;
-        allMissionDict.Add(MissionID, vDetailData);//娣诲姞浠诲姟
-    }
-
-    public enum TaskTypenum//浠诲姟绫诲瀷鍒嗙被
-    {
-        MainlineTaskType = 0,//涓荤嚎
-        MainlineTaskTyp2 = 1,
-        SideQuestsType2 = 2,//鏀嚎
-        SideQuestsType3 = 3,//鏀嚎浠诲姟锛堟湰婧愭硶瀹濇敮绾匡級
-        SideQuestsType4 = 4,
-        SideQuestsType5 = 5,
-        BountyMissionsType6 = 6,//璧忛噾浠诲姟
-        BountyMissionsType7 = 7,
-        BountyMissionsType8 = 8,
-        FairyAuMissionType11 = 11,//浠欑洘浠诲姟
-        FairyAuMissionType12 = 12,
-        SpecialTaskType13 = 13,//鐗规畩浠诲姟绫诲瀷(鐢ㄤ簬璧忛噾)
-        SpecialTaskType14 = 14,//鐗规畩浠诲姟绫诲瀷(鐢ㄤ簬浠欑洘)
-        AchievementTask = 15,//鎴愬氨浠诲姟锛堟殏鏈紑鍑轰笓灞炲瓧鍏革級
-        SpecialTaskType16 = 16,//鐗规畩浠诲姟绫诲瀷(鐢ㄤ簬娉曞疂)
-        SideQuestsType17 = 17,//鏀嚎17-21鏂板
-        SideQuestsType18 = 18,
-        SideQuestsType19 = 19,
-        SideQuestsType20 = 20,//(鍚庣鐗规畩澶勭悊锛屾殏瀹氫笉璁╀娇鐢�)
-        SideQuestsType21 = 21,
-    }
-
-    void TaskClassification(int _taskID, int MissionState)//浠诲姟鍒嗙被(涓荤嚎浠诲姟,鏀嚎浠诲姟)
-    {
-        if (!allMissionDict.ContainsKey(_taskID))
-        {
-            return;
-        }
-        TaskTypenum type = (TaskTypenum)allMissionDict[_taskID].Type;
-        switch (type)
-        {
-            case TaskTypenum.MainlineTaskType:
-            case TaskTypenum.MainlineTaskTyp2:
-                {
-                    if (_taskID != 1)//涓荤嚎浠诲姟锛堟坊鍔犱笌鏇存柊锛�
-                    {
-                        if (MainTaskDic.ContainsKey(_taskID))
-                        {
-                            MainTaskDic[_taskID] = allMissionDict[_taskID];
-                        }
-                        else
-                        {
-                            MainTaskDic.Add(_taskID, allMissionDict[_taskID]);
-                        }
-                    }
-
-                }
-                break;
-            case TaskTypenum.SideQuestsType2:
-            case TaskTypenum.SideQuestsType3:
-            case TaskTypenum.SideQuestsType4:
-            case TaskTypenum.SideQuestsType5:
-            case TaskTypenum.SideQuestsType17:
-            case TaskTypenum.SideQuestsType18:
-            case TaskTypenum.SideQuestsType19:
-            case TaskTypenum.SideQuestsType20:
-            case TaskTypenum.SideQuestsType21:
-                {
-                    if (SideQuestsDic.ContainsKey(_taskID))
-                    {
-                        SideQuestsDic[_taskID] = allMissionDict[_taskID];
-                    }
-                    else
-                    {
-                        SideQuestsDic.Add(_taskID, allMissionDict[_taskID]);
-                    }
-                    if (SideQuestChangeEvent != null)
-                    {
-                        SideQuestChangeEvent(_taskID);
-                    }
-                }
-                break;
-            case TaskTypenum.BountyMissionsType6:
-            case TaskTypenum.BountyMissionsType7:
-            case TaskTypenum.BountyMissionsType8:
-                {
-
-                    if (BountyDic.ContainsKey(_taskID))
-                        BountyDic[_taskID] = allMissionDict[_taskID];
-                    else
-                        BountyDic.Add(_taskID, allMissionDict[_taskID]);
-                    if (Event_nBounty != null)
-                        Event_nBounty();
-                }
-
-                break;
-            case TaskTypenum.FairyAuMissionType11:
-            case TaskTypenum.FairyAuMissionType12:
-                {
-                    if (FairyAuDic.ContainsKey(_taskID))
-                        FairyAuDic[_taskID] = allMissionDict[_taskID];
-                    else
-                        FairyAuDic.Add(_taskID, allMissionDict[_taskID]);
-                    if (Event_FairyAuTask != null && MissionState != 3)
-                        Event_FairyAuTask();
-                }
-                break;
-            case TaskTypenum.SpecialTaskType13:
-            case TaskTypenum.SpecialTaskType14:
-            case TaskTypenum.SpecialTaskType16:
-
-                {
-                    if (SpecialTask.ContainsKey(_taskID))
-                        SpecialTask[_taskID] = allMissionDict[_taskID];
-                    else
-                        SpecialTask.Add(_taskID, allMissionDict[_taskID]);
-                }
-                break;
-            default:
-                break;
-        }
-
-
-    }
-
-    void TaskTypeDeletion(int _taskID)//浠诲姟绫诲瀷鐨勫垹闄�
-    {
-
-        if (MainTaskDic.ContainsKey(_taskID))//涓荤嚎
-        {
-            MainTaskDic.Remove(_taskID);
-        }
-        else if (SideQuestsDic.ContainsKey(_taskID))//鏀嚎
-        {
-            SideQuestsDic.Remove(_taskID);
-        }
-        else if (BountyDic.ContainsKey(_taskID))//璧忛噾
-        {
-            BountyDic.Remove(_taskID);
-            if (Event_nBounty != null)
-                Event_nBounty();
-
-        }
-        else if (SpecialTask.ContainsKey(_taskID))//鐗规畩浠诲姟
-        {
-            SpecialTask.Remove(_taskID);
-        }
-        else if (FairyAuDic.ContainsKey(_taskID))
-        {
-            FairyAuDic.Remove(_taskID);
-            if (Event_FairyAuTask != null)
-                Event_FairyAuTask();
-        }
-
-
-    }
-    string TaskDetails(string _string, int _index)////Json瑙f瀽
-    {
-        JsonData _Json = JsonMapper.ToObject(_string);
-        if (_Json.Count == 1)
-        {
-            string _TaskDetails = _Json["0"].ToString().Replace("\"", "");
-            return _TaskDetails;
-        }
-        else
-        {
-            string _TaskDetails = _Json[_index.ToString()].ToString().Replace("\"", "");
-            return _TaskDetails;
-        }
-
-    }
-
-
-    List<TsakLight> CharactersReplace(string _string, int _index, int Id)
-    {
-
-        JsonData _Json = JsonMapper.ToObject(_string);
-        List<TsakLight> TsakLightList = new List<TsakLight>();
-        TsakLightList.Clear();
-        TsakLight taskLight = new TsakLight();
-        foreach (var key in _Json.Keys)
-        {
-            if (int.Parse(key) == _index)
-            {
-                JsonData _Json1 = _Json[key];
-                if (_Json1.Count != 0)
-                {
-                    foreach (var _key in _Json1.Keys)
-                    {
-                        string Str = _key.ToString();
-                        Match match = Regex.Match(Str, pattern);
-                        if (ReplaceDic.ContainsKey(Id))
-                        {
-                            Dictionary<string, int> _dic = ReplaceDic[Id];
-                            if (_dic.ContainsKey(match.Groups[1].Value))
-                            {
-                                taskLight.NpcId = _dic[match.Groups[1].Value];
-                                taskLight.StateLight = int.Parse(_Json1[_key].ToString());
-                                TsakLightList.Add(taskLight);
-                                return TsakLightList;
-                            }
-                        }
-                    }
-                }
-
-            }
-        }
-
-        return TsakLightList;
-    }
-
-    string StrInforList(string _string, int _index)
-    {
-        JsonData _Json = JsonMapper.ToObject(_string);
-        foreach (var key in _Json.Keys)
-        {
-            if (int.Parse(key) == _index)
-            {
-                JsonData _Json1 = _Json[key];
-                if (_Json1.Count != 0)
-                {
-                    foreach (var _key in _Json1.Keys)
-                    {
-                        return _Json1[_key].ToString();
-                    }
-                }
-            }
-        }
-
-        return string.Empty;
-    }
-
-    List<TsakLight> StrSegmentation(string _string, int _index)
-    {
-        int val;
-        JsonData _Json = JsonMapper.ToObject(_string);
-        List<TsakLight> TsakLightList = new List<TsakLight>();
-        TsakLightList.Clear();
-
-        foreach (var key in _Json.Keys)
-        {
-            if (int.Parse(key) == _index)
-            {
-                JsonData _Json1 = _Json[key];
-                if (_Json1.Count != 0)
-                {
-                    foreach (var _key in _Json1.Keys)
-                    {
-                        if (int.TryParse(_key, out val))
-                        {
-                            TsakLight taskLight = new TsakLight();
-                            taskLight.NpcId = int.Parse(_key);
-                            taskLight.StateLight = int.Parse(_Json1[_key].ToString());
-                            TsakLightList.Add(taskLight);
-                        }
-                        return TsakLightList;
-                    }
-                }
-            }
-        }
-
-        return TsakLightList;
-    }
-
-    string RewardInformation(string _string, int _index)//濂栧姳淇℃伅
-    {
-
-        string _occupation = ("J" + PlayerDatas.Instance.baseData.Job).ToString();
-        JsonData _Json = JsonMapper.ToObject(_string);
-        foreach (var key in _Json.Keys)
-        {
-            if (int.Parse(key) == _index)
-            {
-                JsonData _Json1 = _Json[key];
-                if (_Json1.Count != 0)
-                {
-                    foreach (var _key in _Json1.Keys)
-                    {
-                        if (_key == _occupation)
-                            return _Json1[_key].ToString();
-                        else if (_key == "-")
-                            return _Json1[_key].ToString();
-                    }
-                }
-                else
-                {
-                    return null;
-                }
-            }
-        }
-        return null;
-    }
-
-
-    void TaskChanges(int MissionID, int MissionState, int DiscriptionIndex)//瀛樺湪鐨勪换鍔$殑淇敼
-    {
-        var pytaskM = PyTaskConfig.Get(MissionID);
-        if (pytaskM == null)
-            return;
-        allMissionDict[MissionID].Time = DateTime.Now;
-        allMissionDict[MissionID].MissionState = MissionState;
-        allMissionDict[MissionID].descIndex = DiscriptionIndex;
-        allMissionDict[MissionID].RewardList = RewardInformation(pytaskM.rewardList, DiscriptionIndex);//濂栧姳淇℃伅
-        allMissionDict[MissionID].Desclist = TaskDetails(pytaskM.descList, DiscriptionIndex);//浠诲姟璇︽儏
-        allMissionDict[MissionID].InforList = StrInforList(pytaskM.infoList, DiscriptionIndex);//浠诲姟瀹屾垚鏉′欢
-
-
-        if (MissionState == 3)
-        {
-            if (allMissionDict[MissionID].LightList.Equals(default(TsakLight)))
-            {
-                return;
-            }
-            for (int i = 0; i < allMissionDict[MissionID].LightList.Count; i++)
-            {
-                TsakLight TsakLight = new TsakLight();
-                TsakLight.NpcId = allMissionDict[MissionID].LightList[i].NpcId;
-                TsakLight.StateLight = -1;
-                allMissionDict[MissionID].LightList[i] = TsakLight;
-            }
-            return;
-        }
-        else
-        {
-            if (ReplaceDic.ContainsKey(MissionID))
-            {
-                Dictionary<string, int> _dic = ReplaceDic[MissionID];
-                if (_dic.ContainsKey("visit_npc_id") || _dic.ContainsKey("kill_npc_id"))
-                {
-                    allMissionDict[MissionID].LightList = CharactersReplace(pytaskM.lightList, DiscriptionIndex, allMissionDict[MissionID].ID);
-                }
-                else
-                {
-                    allMissionDict[MissionID].LightList = StrSegmentation(pytaskM.lightList, DiscriptionIndex);//浠诲姟淇℃伅鐏�
-                }
-            }
-            else
-            {
-                allMissionDict[MissionID].LightList = StrSegmentation(pytaskM.lightList, DiscriptionIndex);//浠诲姟淇℃伅鐏�
-            }
-        }
-    }
-
-    public void Task0820(H0820_tagMissionDict info)//0820淇℃伅瀛楀吀
-    {
-        Dictionary<string, int> dic = null;
-        ReplaceDic.TryGetValue((int)info.MissionID, out dic);
-        if (dic == null)
-        {
-            dic = new Dictionary<string, int>();
-            StorageNPCDic(info.DictKey, (int)info.DictValue);
-            dic.Add(info.DictKey, (int)info.DictValue);
-            ReplaceDic.Add((int)info.MissionID, dic);
-        }
-        else
-        {
-            if (dic.ContainsKey(info.DictKey))
-            {
-                StorageNPCDic(info.DictKey, (int)info.DictValue);
-                dic[info.DictKey] = (int)info.DictValue;
-                if (info.DictKey == "around_allcount")
-                {
-                    if (TaskCoinTaskEvent != null)
-                    {
-                        TaskCoinTaskEvent();
-                    }
-                }
-                if (info.DictKey == "around_count_family")
-                {
-                    if (FairyTaskEvent != null)
-                    {
-                        FairyTaskEvent();
-                    }
-                }
-            }
-            else
-            {
-                StorageNPCDic(info.DictKey, (int)info.DictValue);
-                dic.Add(info.DictKey, (int)info.DictValue);
-            }
-        }
-
-    }
-
-    public void RequestGetTaskAward(string _answer)
-    {
-
-        var sendInfo = new C0802_tagCNPCAnswer();
-        sendInfo.Answer = _answer;
-        sendInfo.AnswerLen = (byte)_answer.Length;
-        GameNetSystem.Instance.SendInfo(sendInfo);
-
-        if (tryGetTaskAwardEvent != null)
-        {
-            tryGetTaskAwardEvent();
-        }
-    }
-
-    public void TaskRefreshes(int _MissionId, int _DictKeyLen, string _DictKey, int _DictValue)//浠诲姟鏁版嵁鐨勫埛鏂帮紙浠诲姟瀛楀吀淇℃伅锛�
-    {
-
-        if (!_DicTaskInformation.ContainsKey(_MissionId))
-        {
-            Dictionary<string, string> _dic = new Dictionary<string, string>();
-            if (_dic.ContainsKey(_DictKey))
-            {
-                _dic[_DictKey] = _DictValue.ToString();
-            }
-            else
-            {
-                _dic.Add(_DictKey, _DictValue.ToString());
-            }
-            _DicTaskInformation.Add(_MissionId, _dic);
-            string kaji = "kaji";
-            if (_DicTaskInformation.ContainsKey(_MissionId) && _DicTaskInformation[_MissionId].ContainsKey(kaji))
-            {
-                if (MainTaskDic.ContainsKey(_MissionId) && MainCardLevelChange != null && _DictValue == 0)
-                {
-
-                    if (IsGetOnBool)
-                    {
-                        GetNowTaskID = _MissionId;
-                    }
-                    MainCardLevelChange(_MissionId);
-
-                }
-            }
-        }
-        else
-        {
-            if (_DicTaskInformation[_MissionId].ContainsKey(_DictKey))
-            {
-                _DicTaskInformation[_MissionId][_DictKey] = _DictValue.ToString();
-                if (_DictKey == "kaji" && (_DictValue == 0 || _DictValue == 1))//kaji:0涓轰富绾垮崱绾у彉鏇达紝kaji:1涓洪瓟鏃忓崱绾у彉鏇�
-                {
-                    if (CardLevelChange != null)
-                    {
-                        CardLevelChange(_MissionId);
-                    }
-                    if (MainTaskDic.ContainsKey(_MissionId))
-                    {
-                        if (IsGetOnBool)
-                        {
-                            GetNowTaskID = _MissionId;
-                        }
-                        if (MainCardLevelChange != null)
-                        {
-                            MainCardLevelChange(_MissionId);
-                        }
-                    }
-                }
-            }
-            else
-            {
-                _DicTaskInformation[_MissionId].Add(_DictKey, _DictValue.ToString());
-            }
-        }
-
-
-        if (Event_TaskInformation != null)
-            Event_TaskInformation(_MissionId, _DicTaskInformation);
-    }
-    public void DelMission(int _taskID)//鐪熷疄浠诲姟鍒犻櫎
-    {
-        if (allMissionDict.ContainsKey(_taskID))
-        {
-            allMissionDict.Remove(_taskID);
-            if (_DicTaskInformation.ContainsKey(_taskID))
-            {
-                _DicTaskInformation.Remove(_taskID);
-            }
-        }
-        TaskTypeDeletion(_taskID);
-        if (Event_TaskToDelete != null)
-        {
-            Event_TaskToDelete(_taskID);
-        }
-    }
-    bool _bool = false;
-    string _conversationA = null;
-    public void EventTalk(H0801_tagEventTalk info)//璁块棶浠诲姟鏄惁鍙彁浜�
-    {
-        NPCid = (int)info.NPCID;
-        if (info.Msg == null || info.Msg[0].MsgLen == 0)
-        {
-            _conversation = _conversationA;
-        }
-        else
-        {
-            if (_conversationA != info.Msg[0].Msg)
-            {
-                _conversation = info.Msg[0].Msg;
-                _conversationA = _conversation;
-            }
-        }
-
-        if (_bool)
-        {
-            if ((int)info.MissionID != 0)
-            {
-                _TaskNow = (int)info.MissionID;
-                OnEventTalkEvent((int)info.MissionID);
-                _bool = false;
-                return;
-            }
-        }
-
-        for (int i = 0; i < info.Answer.Length; i++)
-        {
-            string[] str = info.Answer[i].Msg.Split('_');
-            int var;
-            if (str.Length > 1)
-            {
-                for (int j = 0; j < info.Answer.Length; j++)
-                {
-                    string[] stX = info.Answer[j].Msg.Split('_');
-                    if (stX.Length > 1)
-                    {
-                        string strXX = stX[stX.Length - 1];
-                        if (int.TryParse(strXX, out var))
-                        {
-                            if (int.Parse(strXX) == GetNowTaskID)
-                            {
-                                RequestGetTaskAward(strXX);
-                                _bool = true;
-                                return;
-                            }
-                        }
-                    }
-                }
-                string str1 = str[str.Length - 1];
-                RequestGetTaskAward(str1);
-                _bool = true;
-                return;
-            }
-            else
-            {
-                _bool = false;
-                if ((int)info.NPCID != 32504001)
-                {
-                    DefaultDialogue();
-                }
-                return;
-            }
-        }
-    }
-
-    public string pattern = @"\{(.+)\}";
-
-    public int StatusLightQuery(int _NpcID)//鐘舵�佺伅鏌ヨ
-    {
-        int Light = -1;
-        foreach (int key in allMissionDict.Keys)
-        {
-            if (allMissionDict[key].LightList.Equals(default(TsakLight)))
-            {
-                continue;
-            }
-            for (int i = 0; i < allMissionDict[key].LightList.Count; i++)
-            {
-                if (_NpcID == allMissionDict[key].LightList[i].NpcId)
-                {
-                    if (allMissionDict[key].LightList[i].StateLight > Light)
-                    {
-                        Light = allMissionDict[key].LightList[i].StateLight;
-                    }
-                }
-            }
-        }
-
-        return Light;
-    }
-
-    public void DailyFairyTaskMove()//鏃ュ父浠欑洘浠诲姟
-    {
-        if (SpecialTask.Count != 0)
-        {
-            foreach (int key in SpecialTask.Keys)
-            {
-                if (SpecialTask[key].Type == 14 && SpecialTask[key].MissionState != 3)//鏈帴浠诲姟
-                {
-                    PlayerDatas.Instance.hero.Behaviour.StopHandupAI();
-                    SnxxzGame.Instance.StartCoroutine(WaitForSkillFinished(key));
-                    return;
-                }
-            }
-        }
-        if (FairyAuDic.Count != 0)
-        {
-            foreach (int key in FairyAuDic.Keys)
-            {
-                if (FairyAuDic[key].MissionState != 0 && FairyAuDic[key].MissionState != 3)
-                {
-                    PlayerDatas.Instance.hero.Behaviour.StopHandupAI();
-                    SnxxzGame.Instance.StartCoroutine(WaitForSkillFinished(key));
-                    return;
-                }
-            }
-        }
-    }
-    public void DailyBountyMove()//鏃ュ父璧忛噾浠诲姟
-    {
-        if (SpecialTask.Count != 0)
-        {
-            foreach (int key in SpecialTask.Keys)
-            {
-                if (SpecialTask[key].Type == 13 && SpecialTask[key].MissionState != 3)//鏈帴浠诲姟
-                {
-                    PlayerDatas.Instance.hero.Behaviour.StopHandupAI();
-                    SnxxzGame.Instance.StartCoroutine(WaitForSkillFinished(key));
-                    return;
-                }
-            }
-        }
-        if (BountyDic.Count != 0)
-        {
-            foreach (int key in BountyDic.Keys)
-            {
-                if (BountyDic[key].MissionState != 0 && BountyDic[key].MissionState != 3)
-                {
-                    PlayerDatas.Instance.hero.Behaviour.StopHandupAI();
-                    SnxxzGame.Instance.StartCoroutine(WaitForSkillFinished(key));
-                    return;
-                }
-            }
-        }
-    }
-
-
-    private void AutotaskingPrecedence(bool automaticityBool, int missionID)//鍏充簬鏄惁鎵ц鑷姩浠诲姟鍜岃嚜鍔ㄤ换鍔$殑浼樺厛绾�
-    {
-        if (automaticityBool)
-        {
-            var inDungeon = IsDungeon();
-
-            if (inDungeon)//鍒ゆ柇鏄惁鍐嶅壇鏈腑瀵逛换鍔D杩涜鍌ㄥ瓨
-            {
-                retainTaskID = Autotasking(missionID);
-            }
-            else
-            {
-                retainTaskID = 0;
-                if (Autotasking(missionID) != 0)
-                {
-                    AutomaticTripToTask(Autotasking(missionID));
-                }
-            }
-        }
-    }
-
-    private int Autotasking(int taskID)
-    {
-        foreach (var value in MainTaskDic.Values)
-        {
-            if (value.MissionState != 0 && value.MissionState != 3)
-            {
-                if (allMissionDict.ContainsKey(taskID) && (allMissionDict[taskID].Time - value.Time).TotalSeconds <= 1)
-                {
-                    if (ReplaceDic.ContainsKey(value.ID))
-                    {
-                        Dictionary<string, int> _dic = ReplaceDic[value.ID];
-                        if (_dic.ContainsKey("continue") && _dic["continue"] == 1)
-                        {
-                            return value.ID;
-                        }
-                    }
-                }
-            }
-        }
-        if (ReplaceDic.ContainsKey(taskID))
-        {
-            Dictionary<string, int> _dic = ReplaceDic[taskID];
-            if (_dic.ContainsKey("continue") && _dic["continue"] == 1)
-            {
-                return taskID;
-            }
-        }
-        return 0;
-    }
-
-
-    public void AutomaticTripToTask(int _taskID)//浠诲姟鑷姩鍓嶅線锛堜换鍔℃坊鍔狅級
-    {
-        try
-        {
-            if (MainTaskDic.ContainsKey(_taskID))//涓荤嚎浠诲姟
-            {
-                if (MainTaskDic[_taskID].MissionState == 0 || MainTaskDic[_taskID].MissionState == 3)
-                    return;
-                if (MainTaskDic.ContainsKey(_taskID))
-                {
-                    PlayerDatas.Instance.hero.Behaviour.StopHandupAI();
-                    SnxxzGame.Instance.StartCoroutine(WaitForSkillFinished(_taskID));
-                    return;
-                }
-            }
-            if (BountyDic.ContainsKey(_taskID))//璧忛噾浠诲姟
-            {
-                if (BountyDic[_taskID].MissionState == 3 || BountyDic[_taskID].MissionState == 2 || BountyMotionBool)
-                {
-                    return;
-                }
-                else
-                {
-                    if (BountyDic.ContainsKey(_taskID))
-                    {
-                        PlayerDatas.Instance.hero.Behaviour.StopHandupAI();
-                        SnxxzGame.Instance.StartCoroutine(WaitForSkillFinished(_taskID));
-                        return;
-                    }
-                }
-            }
-            else if (FairyAuDic.ContainsKey(_taskID))//浠欑洘浠诲姟
-            {
-                if (FairyAuDic[_taskID].MissionState == 3 || FairyAuDic[_taskID].MissionState == 2 || FairyAuBool)
-                {
-                    return;
-                }
-                if (FairyAuDic.ContainsKey(_taskID))
-                {
-                    PlayerDatas.Instance.hero.Behaviour.StopHandupAI();
-                    SnxxzGame.Instance.StartCoroutine(WaitForSkillFinished(_taskID));
-                    return;
-                }
-            }
-            else if (SideQuestsDic.ContainsKey(_taskID))
-            {
-                if (SideQuestsDic[_taskID].MissionState == 0 || SideQuestsDic[_taskID].MissionState == 3)
-                {
-                    return;
-                }
-                else
-                {
-                    PlayerDatas.Instance.hero.Behaviour.StopHandupAI();
-                    SnxxzGame.Instance.StartCoroutine(WaitForSkillFinished(_taskID));
-                    return;
-                }
-            }
-        }
-        catch (Exception ex)
-        {
-            DebugEx.Log(ex);
-        }
-    }
-
-    public void RunTaskAwarInfo(HA708_tagMCRunTaskAwardInfo info)//閫氱煡璺戠幆濂栧姳璁板綍
-    {
-        for (int i = 0; i < info.Cnt; i++)
-        {
-            if (!AwardRecordDic.ContainsKey(info.InfoList[i].Type))
-            {
-                RunTaskAwardRecord _RunTaskAwardRecord = new RunTaskAwardRecord();
-                _RunTaskAwardRecord.Num = (int)info.InfoList[i].Num;
-                _RunTaskAwardRecord.AwardState = info.InfoList[i].AwardState;
-                AwardRecordDic.Add(info.InfoList[i].Type, _RunTaskAwardRecord);
-            }
-            else
-            {
-                AwardRecordDic[info.InfoList[i].Type].Num = (int)info.InfoList[i].Num;
-                AwardRecordDic[info.InfoList[i].Type].AwardState = info.InfoList[i].AwardState;
-            }
-            if (info.InfoList[i].Type == (int)TaskTypenum.BountyMissionsType7)
-            {
-                BountyRewardsNumber = (int)info.InfoList[i].Num;
-                if (Event_BountyRewards != null)
-                    Event_BountyRewards((int)info.InfoList[i].Num, info.InfoList[i].AwardState);
-            }
-            else if (info.InfoList[i].Type == (int)TaskTypenum.FairyAuMissionType12)
-            {
-                OnFairyAuNumber = (int)info.InfoList[i].Num;
-                if (Event_FairyAuReward != null)
-                    Event_FairyAuReward((int)info.InfoList[i].Num, info.InfoList[i].AwardState);
-            }
-        }
-    }
-
-    private PackModel m_PlayerBackModel;
-    private PackModel PlayerBackModel {
-        get {
-            return m_PlayerBackModel ?? (m_PlayerBackModel = ModelCenter.Instance.GetModel<PackModel>());
-        }
-    }
-
-    private IEnumerator WaitForSkillFinished(int _taskID)
-    {
-        GA_Hero _hero = PlayerDatas.Instance.hero;
-
-        if (_hero == null)
-        {
-            yield break;
-        }
-        while (_hero.SkillMgr.CurCastSkill != null &&
-               _hero.SkillMgr.CurCastSkill.SkillCompelete == false)
-        {
-            yield return null;
-        }
-
-        yield return WaitingForSecondConst.WaitMS500;
-
-        var _singleModel = PlayerBackModel.GetSinglePack(PackType.Equip);
-        // 濡傛灉鏈夊畧鎶�, 鍒欎笉鎷惧彇
-        var _itemModel = _singleModel.GetItemByIndex((int)RoleEquipType.SpiritAnimal);
-        if (_itemModel == null || !GeneralDefine.GuardianPickUpID.Contains(_itemModel.itemId))
-        {
-            float _chkDistanceSqrt;
-            DropItemManager.DropObject _obj = null;
-            while (DropItemManager.HandupTryGetHeroItem(out _obj))
-            {
-                if (DropItemManager.StopMissionPickup)
-                {
-                    break;
-                }
-                if (MapTransferUtility.Instance.MapTransferDoType != MapTransferUtility.E_MapTransferDoType.None)
-                {
-                    break;
-                }
-                Vector3 _targetPosition = _obj.dropItem.transform.position;
-                _chkDistanceSqrt = MathUtility.DistanceSqrtXZ(_hero.Pos, _targetPosition);
-                if (_chkDistanceSqrt > 0.5f)
-                {
-                    if (_hero.State != E_ActorState.AutoRun)
-                    {
-                        _hero.MoveToPosition(_targetPosition);
-                    }
-                }
-
-                yield return null;
-            }
-        }
-
-        if (NewBieCenter.Instance.inGuiding || ModelCenter.Instance.GetModel<TreasureModel>().newGotShowing)
-        {
-            yield break;
-        }
-
-        if (WindowCenter.Instance.IsOpen<TreasureBaseWin>())
-        {
-            yield break;
-        }
-
-        if (WindowCenter.Instance.IsOpen<MysteriousMissionWin>())
-        {
-            yield break;
-        }
-
-        if (CrossServerUtility.IsCrossServer())
-        {
-            yield break;
-        }
-
-        if (BountyDic.ContainsKey(_taskID) || FairyAuDic.ContainsKey(_taskID))
-        {
-            yield return WaitingForSecondConst.WaitMS800;//缂撳啿涓�绉掑啀杩涜
-        }
-
-        if (GA_Hero.s_MapSwitching)
-        {
-            yield break;
-        }
-        try
-        {
-            TaskMove(_taskID);
-        }
-        catch (Exception ex)
-        {
-            DebugEx.Log(ex);
-        }
-
-    }
-
-    private int GetNPCID(Dictionary<string, int> _Dic)
-    {
-        foreach (string key in _Dic.Keys)
-        {
-            string[] str = key.Split('_');
-            if (str[0] == "Show")
-            {
-                return int.Parse(str[1]);
-            }
-        }
-        return 0;
-    }
-
-    private void StorageNPCDic(string key, int Value)//鍏充簬NPC鐨勬樉闅�
-    {
-        string[] str = key.Split('_');
-        if (str[0] == "Show")
-        {
-            int NPCid = int.Parse(str[1]);
-            if (NPCShowDic.ContainsKey(NPCid))
-            {
-                NPCShowDic[NPCid] = Value;
-
-            }
-            else
-            {
-                NPCShowDic.Add(NPCid, Value);
-            }
-        }
-    }
-
-
-
-    private void IsShowNpC(int _taskID)//鍏充簬NPC鐨勬樉闅�
-    {
-        if (ReplaceDic.ContainsKey(_taskID))
-        {
-            Dictionary<string, int> showNpcDic = ReplaceDic[_taskID];
-            int Npcid = GetNPCID(showNpcDic);
-            if (Npcid != 0 && NPCShowDic.ContainsKey(Npcid))
-            {
-                if (NPCShowDic[Npcid] == 0)
-                {
-                    if (FaBaoNPCIdList.Contains(Npcid))
-                    {
-                        GA_NpcFunc.SetNpcFuncVisible(Npcid, false, 0.5f, (Vector3 _pos) =>
-                        {
-                            WindowCenter.Instance.Open<EffectToFaBaoWin>();
-                            UIeffectFabaoVec = _pos;
-                        }, 0.3f);
-                    }
-                    else
-                    {
-                        GA_NpcFunc.SetNpcFuncVisible(Npcid, false);
-                    }
-
-                }
-                else if (NPCShowDic[Npcid] == 1)
-                {
-                    GA_NpcFunc.SetNpcFuncVisible(Npcid, true);
-                }
-            }
-        }
-    }
-
-    public enum TaskStatus//浠诲姟鐘舵��
-    {
-        None = -5,//娌℃湁
-        Normal = 0,//姝e父浠诲姟锛堢豢锛�
-        TreasureCardLevel = 1,//娉曞疂鍗$骇锛堢孩锛�
-        CardLevel = 2,//绛夌骇鍗$骇锛堢孩锛�
-        Completed = 3,//绔嬪嵆瀹屾垚浠诲姟
-    }
-    public TaskStatus GetTaskStatus(int taskID)
-    {
-        if (_DicTaskInformation.ContainsKey(taskID) && _DicTaskInformation[taskID].ContainsKey("kaji"))
-        {
-            var kaji = _DicTaskInformation[taskID]["kaji"];
-
-            switch (int.Parse(kaji))
-            {
-                case 0:
-                    return TaskStatus.Normal;
-                case 1:
-                    return TaskStatus.TreasureCardLevel;
-                case 2:
-                    return TaskStatus.CardLevel;
-                case 3:
-                    return TaskStatus.Completed;
-                default:
-                    return TaskStatus.None;
-            }
-        }
-        else
-        {
-            return TaskStatus.None;
-        }
-
-    }
-    private bool IsDungeon()//鍒ゆ柇鏄惁鍦ㄥ壇鏈腑
-    {
-        var mapId = PlayerDatas.Instance.baseData.MapID;
-        var mapConfig = MapConfig.Get(mapId);
-        return mapConfig != null && mapConfig.MapFBType != 0;
-    }
-    public bool IsGather(int npdId)//鏄惁鑳介噰闆哊PC
-    {
-        var taskListConfig = TaskListConfig.Get(currentMission);
-        if (taskListConfig != null)
-        {
-            int[] collectNPCList = taskListConfig.CollectNPC;
-            if ((collectNPCList.Length == 1 && collectNPCList[0] == 0) || GetTaskStatus(currentMission) != 0)
-            {
-                return false;
-
-            }
-            for (int i = 0; i < collectNPCList.Length; i++)
-            {
-                if (collectNPCList[i] == npdId)
-                {
-                    return true;
-                }
-            }
-        }
-        return false;
-    }
-
-    public static bool IsOPenAutoResolve()//浠诲姟闈㈡澘涓嶅紑鍚嚜鍔ㄦ寕鏈虹姸鎬�
-    {
-        bool _bool = true;
-        if (WindowCenter.Instance.IsOpen<TaskBoxBGMWin>())
-        {
-            _bool = false;
-        }
-        else if (WindowCenter.Instance.IsOpen<DefaultDialogueBoxWin>())
-        {
-            _bool = false;
-        }
-        else if (WindowCenter.Instance.IsOpen<DialogueDuidanceWin>())
-        {
-            _bool = false;
-        }
-        return _bool;
-    }
-
-    private int BOUNTYTASK = 2009;//璧忛噾浠诲姟
-    private int FAIRYAUTASK = 3009;//浠欑洘浠诲姟
-    private void TaskTerminationToHangUp(int taskID, int MissionState)//(瀹屾垚浠诲姟鍚庡墠寰�鎸傛満鍦扮偣)浠诲姟ID锛屼换鍔$姸鎬�
-    {
-        if (!AutomaticityBool)
-        {
-            return;
-        }
-        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 = MapEventPointConfig.Get(point);
-            MapTransferUtility.Instance.MoveToNPC(config.NPCID);
-
-        }
-    }
-    public void CompletionOfTask(int TaskID)//浠诲姟瀹屾垚
-    {
-        CA206_tagCMQuickFinishMission _CA206 = new CA206_tagCMQuickFinishMission();
-        _CA206.MissionID = (uint)TaskID;
-        _CA206.DoType = 0;
-        GameNetSystem.Instance.SendInfo(_CA206);
-    }
-
-    public int SideQuestState(int TaskID)//鍏充簬鏌ヨ浠诲姟鐨勭姸鎬侊紙-1娌℃湁姝や换鍔★紝0鏈帴,1姝e湪杩涜涓紝2鍙彁浜わ級
-    {
-        if (allMissionDict.ContainsKey(TaskID))
-        {
-            return allMissionDict[TaskID].MissionState;
-        }
-        else
-        {
-            return -1;
-        }
-    }
-
-    public int GetQuestState(int _taskId)
-    {
-        if (allMissionDict.ContainsKey(_taskId))
-        {
-            return allMissionDict[_taskId].MissionState;
-        }
-        else
-        {
-            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;
-        }
-    }
-
-
-    public bool IsTaskMove()
-    {
-        bool IsBool = false;
-        if (!WindowCenter.Instance.IsOpen<MainInterfaceWin>())
-        {
-            return IsBool;
-        }
-        if (PlayerDatas.Instance.baseData.LV > TaskAutoLv)
-        {
-            return IsBool;
-        }
-        if (GetTaskStatus(currentMission) == TaskStatus.Normal)
-        {
-            IsBool = true;
-        }
-        return IsBool;
-    }
-    public void TaskMove(int _taskID)
-    {
-        if (allMissionDict.ContainsKey(_taskID) && !NewBieCenter.Instance.inGuiding)
-        {
-            string _strTest = allMissionDict[_taskID].InforList;
-            string strTask = TaskAllocation.Instance.GetTaskInfo(TASKINFOConfig.Get(_strTest).show_writing, _taskID);
-            HrefAnalysis.Inst.ExcuteHrefEvent(strTask);
-            DropItemManager.StopMissionPickup = false;
-            TaskAllocation.Instance.TaskTime = TimeUtility.ServerNow;
-        }
-    }
-}
+锘縰sing System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using LitJson;
+using System.Text.RegularExpressions;
+using System.Text;
+using Snxxz.UI;
+//浠诲姟淇℃伅鐨勫瓨鍌�
+
+/** 浠诲姟缁撴瀯 */
+public class MissionDetailDates
+{
+    public DateTime Time;//璁板綍鏃堕棿
+    public int ID;//浠诲姟ID
+    public string Name;//浠诲姟鍚嶇О
+    public int Type;//浠诲姟绫诲瀷
+    public int NPC_ID;//璧峰NPCID
+    public int LV;//鍙帴绛夌骇
+    public int ColorLV;//浠诲姟闅惧害
+    public string Desclist;//浠诲姟璇︽儏
+    public string RewardList;//濂栧姳淇℃伅
+    public List<TsakLight> LightList;//浠诲姟鐏俊鎭�
+    public string InforList;//浠诲姟瀹屾垚鏉′欢
+    public int MissionState;//浠诲姟鐘舵��0鏈帴锛�1杩涜涓紝2鍙彁浜わ紝3宸插畬鎴�,6鐗规畩鍗$骇
+    public int descIndex;//浠诲姟鎻忚堪绱㈠紩
+}
+
+
+public class MissionDict//浠诲姟瀛楀吀淇℃伅
+{
+    public int MissionId;//浠诲姟ID 
+
+    public int DictKeyLen;//浠诲姟瀛楀吀涓殑鏌愪釜Key
+
+    public string DictKey;//key鐨勯暱搴�
+
+    public int DictValue;//璇ey瀵瑰簲鐨勫��
+
+
+}
+public class RunTaskAwardRecord
+{
+    public int Num;
+    public int AwardState;
+}
+
+public struct TsakLight
+{
+    public int NpcId;
+    public int StateLight;
+}
+
+
+public class TaskModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
+{
+
+    /** 浠诲姟鎬绘竻鍗� */
+    public static bool _globalbool = false;
+    public Dictionary<int, MissionDetailDates> allMissionDict = new Dictionary<int, MissionDetailDates>();//浠诲姟鍒濆鍖栨帴鏀跺瓧鍏�
+    public Dictionary<int, MissionDetailDates> MainTaskDic = new Dictionary<int, MissionDetailDates>();//涓荤嚎浠诲姟瀛楀吀
+    public Dictionary<int, MissionDetailDates> SideQuestsDic = new Dictionary<int, MissionDetailDates>();//鏀嚎浠诲姟瀛楀吀
+    public Dictionary<int, MissionDetailDates> BountyDic = new Dictionary<int, MissionDetailDates>();//璧忛噾浠诲姟
+    public Dictionary<int, MissionDetailDates> FairyAuDic = new Dictionary<int, MissionDetailDates>();//浠欑洘浠诲姟
+    public Dictionary<int, MissionDetailDates> SpecialTask = new Dictionary<int, MissionDetailDates>();//鐗规畩浠诲姟绫诲瀷
+    public Dictionary<int, Dictionary<string, string>> _DicTaskInformation = new Dictionary<int, Dictionary<string, string>>();//浠诲姟瀛楀吀鐨勪俊鎭�
+    public Dictionary<int, Dictionary<string, int>> ReplaceDic = new Dictionary<int, Dictionary<string, int>>();//key鍊兼浛鎹㈠瓧鍏�
+    public Dictionary<int, RunTaskAwardRecord> AwardRecordDic = new Dictionary<int, RunTaskAwardRecord>();//璺戠幆濂栧姳璁板綍
+    public Dictionary<int, int> NPCShowDic = new Dictionary<int, int>();//鍏充簬NPC鐨勬樉闅愰棶棰�
+    public delegate void OnTaskToAdd(int MissionID, int MissionState, int DiscriptionIndex);
+    public static event OnTaskToAdd Event_TaskToAdd;//浠诲姟娣诲姞
+    public delegate void OnTaskRefreshes(int _taskId);
+    public static event OnTaskRefreshes Event_TaskRefreshes;//浠诲姟鐨勫埛鏂�
+    public delegate void OnBounty();//璧忛噾浠诲姟鐨勬坊鍔�
+    public static event OnBounty Event_nBounty;
+    public delegate void OnFairyAuTask();//浠欑洘浠诲姟鐨勬坊鍔犲拰鍒锋柊
+    public static event OnFairyAuTask Event_FairyAuTask;
+
+    public delegate void OnTaskInformation(int _id, Dictionary<int, Dictionary<string, string>> _Dic);
+    public static event OnTaskInformation Event_TaskInformation;//浠诲姟瀛楀吀淇℃伅
+
+    public delegate void OnTaskToDelete(int _taskID);
+    public static event OnTaskToDelete Event_TaskToDelete;//浠诲姟鐨勫垹闄�
+
+    public delegate void OnBountyRewards(int Number, int AwardState);//鑾峰彇璧忛噾濂栧姳
+    public static event OnBountyRewards Event_BountyRewards;
+    public int BountyRewardsNumber = 0;//鑾峰彇璧忛噾鍐呭鐨勫鍔卞��
+
+    public delegate void OnFairyAuReward(int Number, int AwardState);//浠欑洘濂栧姳
+    public static event OnFairyAuReward Event_FairyAuReward;
+    public int OnFairyAuNumber = 0;//鑾峰彇浠欑洘鐨勫鍔卞��
+
+    public string _conversation = null;//瀵硅瘽鍐呭銆�
+    public int _TaskNow = 0;//鑾峰彇褰撳墠浠诲姟ID
+    public string _DefaultDialogContent = null;//榛樿瀵硅瘽鍐呭
+
+    public delegate void OnMainlineTask(int MissionID, int MissionState);//涓荤嚎浠诲姟浠诲姟鐘舵�佸彉鏇村拰鍒锋柊
+    public static event OnMainlineTask Event_MainlineTask;
+
+    public delegate void OnTaskResponse(int _nowNPCid, int _nPCLamp, Dictionary<int, int> _dic = null);//NPCNPC鐏姸鎬侊紝鍙帴鍙栦换鍔★紙NPCID锛屼换鍔$伅鐘舵�侊級
+    public static event OnTaskResponse Event_TaskResponse;
+
+    public static event Action tryGetTaskAwardEvent;//杩欎釜鏄鎴风鍙灏濊瘯鍘婚濂栧氨浼氳Е鍙戯紝涓嶇鏈�鍚庣殑棰嗗缁撴灉銆�
+
+    public static event Action<int> CardLevelChange;//鍏充簬浠诲姟鍗℃満鐘舵�佺殑杞彉
+
+    public static event Action<int> SideQuestChangeEvent;//鏀嚎浠诲姟鐘舵�佹敼鍙�
+
+    public static event Action<int> MainCardLevelChange;//涓荤嚎浠诲姟鍗$骇鐘舵�佹敼鍙�
+
+    public static event Action<int> CompletionOfTaskEvent;//浠诲姟瀹屾垚鍥炶皟
+
+    public static event Action TaskCoinTaskEvent;//璧忛噾浠诲姟淇℃伅瀛楀吀鍙樻洿
+    public static event Action FairyTaskEvent;//浠欑洘浠诲姟淇℃伅瀛楀吀鍙樻洿
+
+    public int NPCid = 0;//鑾峰彇NPCID锛堟墦寮�浠诲姟闈㈡澘鏃讹級銆�
+
+    public bool BountyMotionBool = false;//鎺у埗璧忛噾浠诲姟鏄惁鑷姩绉诲姩
+    public bool FairyAuBool = false;//鎺у埗浠欑洘浠诲姟鏄惁鑷姩绉诲姩
+    public int currentMission { get; private set; }
+    public int currentMissionState { get; private 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娑堝け鏃惰幏鍙栫殑鍧愭爣
+    //----鍏充簬鍓嶆湡鏃犳搷浣滆嚜鍔ㄦ墽琛屼富绾�
+    public int TaskAutoLv = 0;
+    public int TaskAutoTime = 0;
+    PackModel _playerPack;
+    PackModel playerPack {
+        get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PackModel>()); }
+    }
+
+    public override void Init()
+    {
+        StageLoad.Instance.onStageLoadFinish += onStageLoadFinish;
+        NPCInteractProcessor.s_NpcInteractEvent += NpcInterac;
+        FaBaoNPCIdList.Clear();
+        string strFabao = FuncConfigConfig.Get("FaBaoNPCID").Numerical1;
+        string[] strFabaoNpcID = ConfigParse.GetMultipleStr(strFabao);//瑙f瀽鍑烘暟缁剕
+
+        for (int i = 0; i < strFabaoNpcID.Length; i++)
+        {
+            FaBaoNPCIdList.Add(int.Parse(strFabaoNpcID[i]));
+        }
+        string BossDelayTime = FuncConfigConfig.Get("BossDelayTime").Numerical1;
+        BossDelayTimeint = float.Parse(BossDelayTime);
+        var Task_Auto = FuncConfigConfig.Get("TaskAuto");
+        TaskAutoLv = int.Parse(Task_Auto.Numerical1);
+        TaskAutoTime = int.Parse(Task_Auto.Numerical2);
+    }
+
+    public override void UnInit()
+    {
+        StageLoad.Instance.onStageLoadFinish -= onStageLoadFinish;
+        NPCInteractProcessor.s_NpcInteractEvent -= NpcInterac;
+    }
+
+    public void OnBeforePlayerDataInitialize()
+    {
+        allMissionDict.Clear();
+        MainTaskDic.Clear();
+        SideQuestsDic.Clear();
+        BountyDic.Clear();
+        FairyAuDic.Clear();
+        SpecialTask.Clear();
+        _DicTaskInformation.Clear();
+        ReplaceDic.Clear();
+        AwardRecordDic.Clear();
+        NPCShowDic.Clear();
+        _conversation = null;
+        _DefaultDialogContent = null;
+        _TaskNow = 0;
+        BountyRewardsNumber = 0;
+        NPCid = 0;
+        retainTaskID = 0;
+        currentMission = 0;
+        _globalbool = false;
+        BountyMotionBool = false;
+        FairyAuBool = false;
+        AutomaticityBool = false;
+    }
+
+    public void OnPlayerLoginOk()
+    {
+        GlobalTimeEvent.Instance.secondEvent -= secondEvent;
+        GlobalTimeEvent.Instance.secondEvent += secondEvent;
+        TaskAllocation.Instance.TaskTime = TimeUtility.ServerNow;
+        AutomaticityBool = true;
+    }
+
+
+
+    private void onStageLoadFinish()//鍦板浘鍒囨崲鏃惰皟鐢�
+    {
+        var inDungeon = IsDungeon();
+        if (!inDungeon && retainTaskID != 0)
+        {
+            if (ReplaceDic.ContainsKey(retainTaskID))
+            {
+                AutomaticTripToTask(retainTaskID);
+                //int missionState = SideQuestState(retainTaskID);
+                //TaskTerminationToHangUp(retainTaskID, missionState);
+                retainTaskID = 0;
+            }
+        }
+    }
+    List<int> ListMissionID = new List<int>();
+    public void RefreshMissionState(int MissionID, int MissionState, int DiscriptionIndex)//1.浠诲姟ID,2浠诲姟鐘舵�侊紝3锛屼换鍔℃弿杩癐ndex(鎺ユ敹浠诲姟)
+    {
+        try
+        {
+            if (AutomaticityBool && MissionState != 3 && MissionID != 2000 && MissionID != 3000)
+            {
+                TaskupToDate = MissionID;
+            }
+            var pytaskM = PyTaskConfig.Get(MissionID);
+            if (pytaskM == null)
+            {
+                return;
+            }
+            if ((pytaskM.type == (int)TaskTypenum.MainlineTaskType || pytaskM.type == (int)TaskTypenum.MainlineTaskTyp2) && MissionState != 0 && MissionState != 3)
+            {
+                currentMission = MissionID;
+                currentMissionState = MissionState;
+                if (Event_MainlineTask != null)
+                    Event_MainlineTask(MissionID, MissionState);
+            }
+
+
+            if (allMissionDict.ContainsKey(MissionID))
+            {
+                int missionState = allMissionDict[MissionID].MissionState;
+                if (allMissionDict[MissionID].MissionState != MissionState && MissionState == 3 && AutomaticityBool)
+                {
+                    if (CompletionOfTaskEvent != null)
+                    {
+                        CompletionOfTaskEvent(MissionID);
+                    }
+                }
+                TaskChanges(MissionID, MissionState, DiscriptionIndex);//浠诲姟鐨勭姸鎬佷慨鏀�
+
+                if (missionState == 0 && (MissionState == 1 || MissionState == 2))
+                {
+                    if (Event_TaskToAdd != null)//浠诲姟娣诲姞锛堢敤浜庡瓨鍌ㄤ簬韬笂鐨勬湭鎺ュ彇浠诲姟鐨勭壒娈婂鐞嗭級
+                    {
+                        Event_TaskToAdd(MissionID, MissionState, DiscriptionIndex);
+                    }
+                }
+                else
+                {
+                    if (Event_TaskRefreshes != null)//鍒锋柊浠诲姟
+                    {
+                        Event_TaskRefreshes(MissionID);
+                    }
+                }
+
+            }
+            else
+            {
+                AddMission(MissionID, MissionState, DiscriptionIndex);//浠诲姟鐨勬坊鍔�
+                if (Event_TaskToAdd != null)
+                {
+                    Event_TaskToAdd(MissionID, MissionState, DiscriptionIndex);
+                }
+            }
+            TaskClassification(MissionID, MissionState);//浠诲姟鍒嗙被
+            IsShowNpC(1);//鏄惁鏄剧ずNPC
+            IsShowNpC(MissionID);//鏄惁鏄剧ずNPC
+            if (AutomaticityBool)
+            {
+                AutotaskingPrecedence(AutomaticityBool, MissionID);//鏄惁鎵ц鑷姩浠诲姟
+            }
+            TaskTerminationToHangUp(MissionID, MissionState);//缁撴潫璧忛噾鍜屼粰鐩熶换鍔″墠寰�鎸傛満
+            if (Event_TaskResponse != null)//鍙戦�佷换鍔$伅淇℃伅
+            {
+                if (allMissionDict[MissionID].LightList.Equals(default(TsakLight)))
+                {
+                    return;
+                }
+                for (int i = 0; i < allMissionDict[MissionID].LightList.Count; i++)
+                {
+                    Event_TaskResponse(allMissionDict[MissionID].LightList[i].NpcId, allMissionDict[MissionID].LightList[i].StateLight);
+                }
+
+            }
+        }
+        catch (Exception ex)
+        {
+            DebugEx.Log(ex.StackTrace);
+        }
+
+    }
+
+    void NpcInterac(E_NpcType equip, int NPcID, uint instanceId)//鏈嶅姟鍣ㄥ彂鍖咃紙NPCID锛屼汉鐗╀綅缃級
+    {
+        float Posx = PlayerDatas.Instance.hero.Pos.x * 2;
+        float PosY = PlayerDatas.Instance.hero.Pos.z * 2;
+        if (BossInfoConfig.GetBossInfoByStoneId(NPcID) != null)
+        {
+            return;
+        }
+
+        if (CrossServerUtility.IsCrossServer())
+        {
+            var  sendInfo = new CC106_tagCMCrossNPCTalk();
+            sendInfo.ObjID = instanceId;
+            sendInfo.NPCID = (uint)NPcID;
+            sendInfo.PosX = (ushort)Posx;
+            sendInfo.PosY = (ushort)PosY;
+            GameNetSystem.Instance.SendInfo(sendInfo);
+        }
+        else
+        {
+            C0801_tagCNPCTalk _C0801 = new C0801_tagCNPCTalk();
+            _C0801.NPCID = instanceId;
+            _C0801.PosX = (ushort)Posx;
+            _C0801.PosY = (ushort)PosY;
+            GameNetSystem.Instance.SendInfo(_C0801);
+        }
+    }
+
+    void DefaultDialogue()//鍏充簬鎵撳紑榛樿瀵硅瘽鐣岄潰
+    {
+        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>();
+        }
+    }
+    private void OnEventTalkEvent(int taskID)//NPC瀵硅瘽鍚庣殑寮规
+    {
+        //if (WindowCenter.Instance.ExitAnyFullScreenOrMaskWin())
+        //{
+        //    return;
+        //}
+        if (NewBieCenter.Instance.inGuiding || ModelCenter.Instance.GetModel<TreasureModel>().newGotShowing)
+        {
+            return;
+        }
+        var config = StoryMissionsConfig.Get(taskID);
+        bool IsOpenMain = WindowCenter.Instance.IsOpen<MainInterfaceWin>();
+        var treasureStageUpShow = ModelCenter.Instance.GetModel<TreasureModel>().treasureStageUpShow;
+        if (config != null)
+        {
+            for (int i = 0; i < config.NpcID.Length; i++)
+            {
+                if (NPCid == config.NpcID[i])
+                {
+                    if (!WindowCenter.Instance.IsOpen<DialogueDuidanceWin>() && IsOpenMain
+                        && !treasureStageUpShow && !WindowCenter.Instance.ExistAnyFullScreenOrMaskWin())
+                    {
+                        WindowCenter.Instance.Close<MainInterfaceWin>();
+                        WindowCenter.Instance.Open<DialogueDuidanceWin>();
+                    }
+                    return;
+                }
+            }
+            if (!WindowCenter.Instance.IsOpen<TaskBoxBGMWin>() && IsOpenMain && !treasureStageUpShow)
+            {
+                WindowCenter.Instance.Close<MainInterfaceWin>();
+                WindowCenter.Instance.Open<TaskBoxBGMWin>();
+                return;
+            }
+            else
+            {
+                if (BountyDic.ContainsKey(_TaskNow) || FairyAuDic.ContainsKey(_TaskNow))
+                {
+                    if (!ModelCenter.Instance.GetModel<TeamModel>().teamPrepare.isPreparing)
+                    {
+                        RequestGetTaskAward("OK");
+                    }
+                }
+            }
+        }
+        else
+        {
+            if (!WindowCenter.Instance.IsOpen<TaskBoxBGMWin>() && IsOpenMain && !treasureStageUpShow)
+            {
+                WindowCenter.Instance.Close<MainInterfaceWin>();
+                WindowCenter.Instance.Open<TaskBoxBGMWin>();
+                return;
+            }
+            else
+            {
+                if (BountyDic.ContainsKey(_TaskNow) || FairyAuDic.ContainsKey(_TaskNow))
+                {
+                    if (!ModelCenter.Instance.GetModel<TeamModel>().teamPrepare.isPreparing)
+                    {
+                        RequestGetTaskAward("OK");
+                    }
+                }
+            }
+        }
+
+    }
+
+
+    private void BountySelfMotion()
+    {
+        int blank = playerPack.GetEmptyGridCount(PackType.Item);
+        if (blank < 1)//"璇峰厛娓呯悊鑳屽寘鍐嶉鍙栧鍔�
+        {
+            return;
+        }
+
+    }
+
+    void AddMission(int MissionID, int MissionState, int DiscriptionIndex)//娣诲姞浠诲姟
+    {
+        var config = PyTaskConfig.Get(MissionID);
+        if (config == null)
+        {
+            DebugEx.LogError(MissionID + "琛ㄦ牸涓笉瀛樺湪姝や换鍔D");
+            return;
+        }
+
+        if (allMissionDict == null)
+            allMissionDict = new Dictionary<int, MissionDetailDates>();
+        MissionDetailDates vDetailData = new MissionDetailDates();
+        vDetailData.Time = DateTime.Now;
+        vDetailData.ID = int.Parse(config.id);
+        vDetailData.Name = config.name;
+        vDetailData.Type = config.type;
+        vDetailData.NPC_ID = config.npcId;
+        vDetailData.LV = config.lv;
+        vDetailData.ColorLV = config.colorLV;
+
+        vDetailData.RewardList = RewardInformation(config.rewardList, DiscriptionIndex);//濂栧姳淇℃伅
+        if (ReplaceDic.ContainsKey(MissionID))
+        {
+            Dictionary<string, int> _dic = ReplaceDic[MissionID];
+            if (_dic.ContainsKey("visit_npc_id") || _dic.ContainsKey("kill_npc_id"))
+            {
+                vDetailData.LightList = CharactersReplace(config.lightList, DiscriptionIndex, int.Parse(config.id));
+            }
+            else
+            {
+                vDetailData.LightList = StrSegmentation(config.lightList, DiscriptionIndex);//浠诲姟淇℃伅鐏�
+            }
+            if (MissionState == 3)
+            {
+                for (int i = 0; i < vDetailData.LightList.Count; i++)
+                {
+                    TsakLight TsakLight = new TsakLight();
+                    TsakLight.NpcId = vDetailData.LightList[i].NpcId;
+                    TsakLight.StateLight = -1;
+                    vDetailData.LightList[i] = TsakLight;
+                }
+            }
+        }
+        else
+        {
+            vDetailData.LightList = StrSegmentation(config.lightList, DiscriptionIndex);//浠诲姟淇℃伅鐏�
+            if (MissionState == 3)
+            {
+                for (int i = 0; i < vDetailData.LightList.Count; i++)
+                {
+                    TsakLight TsakLight = new TsakLight();
+                    TsakLight.NpcId = vDetailData.LightList[i].NpcId;
+                    TsakLight.StateLight = -1;
+                    vDetailData.LightList[i] = TsakLight;
+                }
+            }
+        }
+        vDetailData.Desclist = TaskDetails(config.descList, DiscriptionIndex);//浠诲姟璇︽儏
+        vDetailData.InforList = StrInforList(config.infoList, DiscriptionIndex);//浠诲姟瀹屾垚鏉′欢
+
+
+        vDetailData.MissionState = MissionState;
+        vDetailData.descIndex = DiscriptionIndex;
+
+        GetNowTaskID = MissionID;
+        allMissionDict.Add(MissionID, vDetailData);//娣诲姞浠诲姟
+    }
+
+    public enum TaskTypenum//浠诲姟绫诲瀷鍒嗙被
+    {
+        MainlineTaskType = 0,//涓荤嚎
+        MainlineTaskTyp2 = 1,
+        SideQuestsType2 = 2,//鏀嚎
+        SideQuestsType3 = 3,//鏀嚎浠诲姟锛堟湰婧愭硶瀹濇敮绾匡級
+        SideQuestsType4 = 4,
+        SideQuestsType5 = 5,
+        BountyMissionsType6 = 6,//璧忛噾浠诲姟
+        BountyMissionsType7 = 7,
+        BountyMissionsType8 = 8,
+        FairyAuMissionType11 = 11,//浠欑洘浠诲姟
+        FairyAuMissionType12 = 12,
+        SpecialTaskType13 = 13,//鐗规畩浠诲姟绫诲瀷(鐢ㄤ簬璧忛噾)
+        SpecialTaskType14 = 14,//鐗规畩浠诲姟绫诲瀷(鐢ㄤ簬浠欑洘)
+        AchievementTask = 15,//鎴愬氨浠诲姟锛堟殏鏈紑鍑轰笓灞炲瓧鍏革級
+        SpecialTaskType16 = 16,//鐗规畩浠诲姟绫诲瀷(鐢ㄤ簬娉曞疂)
+        SideQuestsType17 = 17,//鏀嚎17-21鏂板
+        SideQuestsType18 = 18,
+        SideQuestsType19 = 19,
+        SideQuestsType20 = 20,//(鍚庣鐗规畩澶勭悊锛屾殏瀹氫笉璁╀娇鐢�)
+        SideQuestsType21 = 21,
+    }
+
+    void TaskClassification(int _taskID, int MissionState)//浠诲姟鍒嗙被(涓荤嚎浠诲姟,鏀嚎浠诲姟)
+    {
+        if (!allMissionDict.ContainsKey(_taskID))
+        {
+            return;
+        }
+        TaskTypenum type = (TaskTypenum)allMissionDict[_taskID].Type;
+        switch (type)
+        {
+            case TaskTypenum.MainlineTaskType:
+            case TaskTypenum.MainlineTaskTyp2:
+                {
+                    if (_taskID != 1)//涓荤嚎浠诲姟锛堟坊鍔犱笌鏇存柊锛�
+                    {
+                        if (MainTaskDic.ContainsKey(_taskID))
+                        {
+                            MainTaskDic[_taskID] = allMissionDict[_taskID];
+                        }
+                        else
+                        {
+                            MainTaskDic.Add(_taskID, allMissionDict[_taskID]);
+                        }
+                    }
+
+                }
+                break;
+            case TaskTypenum.SideQuestsType2:
+            case TaskTypenum.SideQuestsType3:
+            case TaskTypenum.SideQuestsType4:
+            case TaskTypenum.SideQuestsType5:
+            case TaskTypenum.SideQuestsType17:
+            case TaskTypenum.SideQuestsType18:
+            case TaskTypenum.SideQuestsType19:
+            case TaskTypenum.SideQuestsType20:
+            case TaskTypenum.SideQuestsType21:
+                {
+                    if (SideQuestsDic.ContainsKey(_taskID))
+                    {
+                        SideQuestsDic[_taskID] = allMissionDict[_taskID];
+                    }
+                    else
+                    {
+                        SideQuestsDic.Add(_taskID, allMissionDict[_taskID]);
+                    }
+                    if (SideQuestChangeEvent != null)
+                    {
+                        SideQuestChangeEvent(_taskID);
+                    }
+                }
+                break;
+            case TaskTypenum.BountyMissionsType6:
+            case TaskTypenum.BountyMissionsType7:
+            case TaskTypenum.BountyMissionsType8:
+                {
+
+                    if (BountyDic.ContainsKey(_taskID))
+                        BountyDic[_taskID] = allMissionDict[_taskID];
+                    else
+                        BountyDic.Add(_taskID, allMissionDict[_taskID]);
+                    if (Event_nBounty != null)
+                        Event_nBounty();
+                }
+
+                break;
+            case TaskTypenum.FairyAuMissionType11:
+            case TaskTypenum.FairyAuMissionType12:
+                {
+                    if (FairyAuDic.ContainsKey(_taskID))
+                        FairyAuDic[_taskID] = allMissionDict[_taskID];
+                    else
+                        FairyAuDic.Add(_taskID, allMissionDict[_taskID]);
+                    if (Event_FairyAuTask != null && MissionState != 3)
+                        Event_FairyAuTask();
+                }
+                break;
+            case TaskTypenum.SpecialTaskType13:
+            case TaskTypenum.SpecialTaskType14:
+            case TaskTypenum.SpecialTaskType16:
+
+                {
+                    if (SpecialTask.ContainsKey(_taskID))
+                        SpecialTask[_taskID] = allMissionDict[_taskID];
+                    else
+                        SpecialTask.Add(_taskID, allMissionDict[_taskID]);
+                }
+                break;
+            default:
+                break;
+        }
+
+
+    }
+
+    void TaskTypeDeletion(int _taskID)//浠诲姟绫诲瀷鐨勫垹闄�
+    {
+
+        if (MainTaskDic.ContainsKey(_taskID))//涓荤嚎
+        {
+            MainTaskDic.Remove(_taskID);
+        }
+        else if (SideQuestsDic.ContainsKey(_taskID))//鏀嚎
+        {
+            SideQuestsDic.Remove(_taskID);
+        }
+        else if (BountyDic.ContainsKey(_taskID))//璧忛噾
+        {
+            BountyDic.Remove(_taskID);
+            if (Event_nBounty != null)
+                Event_nBounty();
+
+        }
+        else if (SpecialTask.ContainsKey(_taskID))//鐗规畩浠诲姟
+        {
+            SpecialTask.Remove(_taskID);
+        }
+        else if (FairyAuDic.ContainsKey(_taskID))
+        {
+            FairyAuDic.Remove(_taskID);
+            if (Event_FairyAuTask != null)
+                Event_FairyAuTask();
+        }
+
+
+    }
+    string TaskDetails(string _string, int _index)////Json瑙f瀽
+    {
+        JsonData _Json = JsonMapper.ToObject(_string);
+        if (_Json.Count == 1)
+        {
+            string _TaskDetails = _Json["0"].ToString().Replace("\"", "");
+            return _TaskDetails;
+        }
+        else
+        {
+            string _TaskDetails = _Json[_index.ToString()].ToString().Replace("\"", "");
+            return _TaskDetails;
+        }
+
+    }
+
+
+    List<TsakLight> CharactersReplace(string _string, int _index, int Id)
+    {
+
+        JsonData _Json = JsonMapper.ToObject(_string);
+        List<TsakLight> TsakLightList = new List<TsakLight>();
+        TsakLightList.Clear();
+        TsakLight taskLight = new TsakLight();
+        foreach (var key in _Json.Keys)
+        {
+            if (int.Parse(key) == _index)
+            {
+                JsonData _Json1 = _Json[key];
+                if (_Json1.Count != 0)
+                {
+                    foreach (var _key in _Json1.Keys)
+                    {
+                        string Str = _key.ToString();
+                        Match match = Regex.Match(Str, pattern);
+                        if (ReplaceDic.ContainsKey(Id))
+                        {
+                            Dictionary<string, int> _dic = ReplaceDic[Id];
+                            if (_dic.ContainsKey(match.Groups[1].Value))
+                            {
+                                taskLight.NpcId = _dic[match.Groups[1].Value];
+                                taskLight.StateLight = int.Parse(_Json1[_key].ToString());
+                                TsakLightList.Add(taskLight);
+                                return TsakLightList;
+                            }
+                        }
+                    }
+                }
+
+            }
+        }
+
+        return TsakLightList;
+    }
+
+    string StrInforList(string _string, int _index)
+    {
+        JsonData _Json = JsonMapper.ToObject(_string);
+        foreach (var key in _Json.Keys)
+        {
+            if (int.Parse(key) == _index)
+            {
+                JsonData _Json1 = _Json[key];
+                if (_Json1.Count != 0)
+                {
+                    foreach (var _key in _Json1.Keys)
+                    {
+                        return _Json1[_key].ToString();
+                    }
+                }
+            }
+        }
+
+        return string.Empty;
+    }
+
+    List<TsakLight> StrSegmentation(string _string, int _index)
+    {
+        int val;
+        JsonData _Json = JsonMapper.ToObject(_string);
+        List<TsakLight> TsakLightList = new List<TsakLight>();
+        TsakLightList.Clear();
+
+        foreach (var key in _Json.Keys)
+        {
+            if (int.Parse(key) == _index)
+            {
+                JsonData _Json1 = _Json[key];
+                if (_Json1.Count != 0)
+                {
+                    foreach (var _key in _Json1.Keys)
+                    {
+                        if (int.TryParse(_key, out val))
+                        {
+                            TsakLight taskLight = new TsakLight();
+                            taskLight.NpcId = int.Parse(_key);
+                            taskLight.StateLight = int.Parse(_Json1[_key].ToString());
+                            TsakLightList.Add(taskLight);
+                        }
+                        return TsakLightList;
+                    }
+                }
+            }
+        }
+
+        return TsakLightList;
+    }
+
+    string RewardInformation(string _string, int _index)//濂栧姳淇℃伅
+    {
+
+        string _occupation = ("J" + PlayerDatas.Instance.baseData.Job).ToString();
+        JsonData _Json = JsonMapper.ToObject(_string);
+        foreach (var key in _Json.Keys)
+        {
+            if (int.Parse(key) == _index)
+            {
+                JsonData _Json1 = _Json[key];
+                if (_Json1.Count != 0)
+                {
+                    foreach (var _key in _Json1.Keys)
+                    {
+                        if (_key == _occupation)
+                            return _Json1[_key].ToString();
+                        else if (_key == "-")
+                            return _Json1[_key].ToString();
+                    }
+                }
+                else
+                {
+                    return null;
+                }
+            }
+        }
+        return null;
+    }
+
+
+    void TaskChanges(int MissionID, int MissionState, int DiscriptionIndex)//瀛樺湪鐨勪换鍔$殑淇敼
+    {
+        var pytaskM = PyTaskConfig.Get(MissionID);
+        if (pytaskM == null)
+            return;
+        allMissionDict[MissionID].Time = DateTime.Now;
+        allMissionDict[MissionID].MissionState = MissionState;
+        allMissionDict[MissionID].descIndex = DiscriptionIndex;
+        allMissionDict[MissionID].RewardList = RewardInformation(pytaskM.rewardList, DiscriptionIndex);//濂栧姳淇℃伅
+        allMissionDict[MissionID].Desclist = TaskDetails(pytaskM.descList, DiscriptionIndex);//浠诲姟璇︽儏
+        allMissionDict[MissionID].InforList = StrInforList(pytaskM.infoList, DiscriptionIndex);//浠诲姟瀹屾垚鏉′欢
+
+
+        if (MissionState == 3)
+        {
+            if (allMissionDict[MissionID].LightList.Equals(default(TsakLight)))
+            {
+                return;
+            }
+            for (int i = 0; i < allMissionDict[MissionID].LightList.Count; i++)
+            {
+                TsakLight TsakLight = new TsakLight();
+                TsakLight.NpcId = allMissionDict[MissionID].LightList[i].NpcId;
+                TsakLight.StateLight = -1;
+                allMissionDict[MissionID].LightList[i] = TsakLight;
+            }
+            return;
+        }
+        else
+        {
+            if (ReplaceDic.ContainsKey(MissionID))
+            {
+                Dictionary<string, int> _dic = ReplaceDic[MissionID];
+                if (_dic.ContainsKey("visit_npc_id") || _dic.ContainsKey("kill_npc_id"))
+                {
+                    allMissionDict[MissionID].LightList = CharactersReplace(pytaskM.lightList, DiscriptionIndex, allMissionDict[MissionID].ID);
+                }
+                else
+                {
+                    allMissionDict[MissionID].LightList = StrSegmentation(pytaskM.lightList, DiscriptionIndex);//浠诲姟淇℃伅鐏�
+                }
+            }
+            else
+            {
+                allMissionDict[MissionID].LightList = StrSegmentation(pytaskM.lightList, DiscriptionIndex);//浠诲姟淇℃伅鐏�
+            }
+        }
+    }
+
+    public void Task0820(H0820_tagMissionDict info)//0820淇℃伅瀛楀吀
+    {
+        Dictionary<string, int> dic = null;
+        ReplaceDic.TryGetValue((int)info.MissionID, out dic);
+        if (dic == null)
+        {
+            dic = new Dictionary<string, int>();
+            StorageNPCDic(info.DictKey, (int)info.DictValue);
+            dic.Add(info.DictKey, (int)info.DictValue);
+            ReplaceDic.Add((int)info.MissionID, dic);
+        }
+        else
+        {
+            if (dic.ContainsKey(info.DictKey))
+            {
+                StorageNPCDic(info.DictKey, (int)info.DictValue);
+                dic[info.DictKey] = (int)info.DictValue;
+                if (info.DictKey == "around_allcount")
+                {
+                    if (TaskCoinTaskEvent != null)
+                    {
+                        TaskCoinTaskEvent();
+                    }
+                }
+                if (info.DictKey == "around_count_family")
+                {
+                    if (FairyTaskEvent != null)
+                    {
+                        FairyTaskEvent();
+                    }
+                }
+            }
+            else
+            {
+                StorageNPCDic(info.DictKey, (int)info.DictValue);
+                dic.Add(info.DictKey, (int)info.DictValue);
+            }
+        }
+
+    }
+
+    public void RequestGetTaskAward(string _answer)
+    {
+
+        var sendInfo = new C0802_tagCNPCAnswer();
+        sendInfo.Answer = _answer;
+        sendInfo.AnswerLen = (byte)_answer.Length;
+        GameNetSystem.Instance.SendInfo(sendInfo);
+
+        if (tryGetTaskAwardEvent != null)
+        {
+            tryGetTaskAwardEvent();
+        }
+    }
+
+    public void TaskRefreshes(int _MissionId, int _DictKeyLen, string _DictKey, int _DictValue)//浠诲姟鏁版嵁鐨勫埛鏂帮紙浠诲姟瀛楀吀淇℃伅锛�
+    {
+
+        if (!_DicTaskInformation.ContainsKey(_MissionId))
+        {
+            Dictionary<string, string> _dic = new Dictionary<string, string>();
+            if (_dic.ContainsKey(_DictKey))
+            {
+                _dic[_DictKey] = _DictValue.ToString();
+            }
+            else
+            {
+                _dic.Add(_DictKey, _DictValue.ToString());
+            }
+            _DicTaskInformation.Add(_MissionId, _dic);
+            string kaji = "kaji";
+            if (_DicTaskInformation.ContainsKey(_MissionId) && _DicTaskInformation[_MissionId].ContainsKey(kaji))
+            {
+                if (MainTaskDic.ContainsKey(_MissionId) && MainCardLevelChange != null && _DictValue == 0)
+                {
+
+                    if (IsGetOnBool)
+                    {
+                        GetNowTaskID = _MissionId;
+                    }
+                    MainCardLevelChange(_MissionId);
+
+                }
+            }
+        }
+        else
+        {
+            if (_DicTaskInformation[_MissionId].ContainsKey(_DictKey))
+            {
+                _DicTaskInformation[_MissionId][_DictKey] = _DictValue.ToString();
+                if (_DictKey == "kaji" && (_DictValue == 0 || _DictValue == 1))//kaji:0涓轰富绾垮崱绾у彉鏇达紝kaji:1涓洪瓟鏃忓崱绾у彉鏇�
+                {
+                    if (CardLevelChange != null)
+                    {
+                        CardLevelChange(_MissionId);
+                    }
+                    if (MainTaskDic.ContainsKey(_MissionId))
+                    {
+                        if (IsGetOnBool)
+                        {
+                            GetNowTaskID = _MissionId;
+                        }
+                        if (MainCardLevelChange != null)
+                        {
+                            MainCardLevelChange(_MissionId);
+                        }
+                    }
+                }
+            }
+            else
+            {
+                _DicTaskInformation[_MissionId].Add(_DictKey, _DictValue.ToString());
+            }
+        }
+
+
+        if (Event_TaskInformation != null)
+            Event_TaskInformation(_MissionId, _DicTaskInformation);
+    }
+    public void DelMission(int _taskID)//鐪熷疄浠诲姟鍒犻櫎
+    {
+        if (allMissionDict.ContainsKey(_taskID))
+        {
+            allMissionDict.Remove(_taskID);
+            if (_DicTaskInformation.ContainsKey(_taskID))
+            {
+                _DicTaskInformation.Remove(_taskID);
+            }
+        }
+        TaskTypeDeletion(_taskID);
+        if (Event_TaskToDelete != null)
+        {
+            Event_TaskToDelete(_taskID);
+        }
+    }
+    bool _bool = false;
+    string _conversationA = null;
+    public void EventTalk(H0801_tagEventTalk info)//璁块棶浠诲姟鏄惁鍙彁浜�
+    {
+        NPCid = (int)info.NPCID;
+        if (info.Msg == null || info.Msg[0].MsgLen == 0)
+        {
+            _conversation = _conversationA;
+        }
+        else
+        {
+            if (_conversationA != info.Msg[0].Msg)
+            {
+                _conversation = info.Msg[0].Msg;
+                _conversationA = _conversation;
+            }
+        }
+
+        if (_bool)
+        {
+            if ((int)info.MissionID != 0)
+            {
+                _TaskNow = (int)info.MissionID;
+                OnEventTalkEvent((int)info.MissionID);
+                _bool = false;
+                return;
+            }
+        }
+
+        for (int i = 0; i < info.Answer.Length; i++)
+        {
+            string[] str = info.Answer[i].Msg.Split('_');
+            int var;
+            if (str.Length > 1)
+            {
+                for (int j = 0; j < info.Answer.Length; j++)
+                {
+                    string[] stX = info.Answer[j].Msg.Split('_');
+                    if (stX.Length > 1)
+                    {
+                        string strXX = stX[stX.Length - 1];
+                        if (int.TryParse(strXX, out var))
+                        {
+                            if (int.Parse(strXX) == GetNowTaskID)
+                            {
+                                RequestGetTaskAward(strXX);
+                                _bool = true;
+                                return;
+                            }
+                        }
+                    }
+                }
+                string str1 = str[str.Length - 1];
+                RequestGetTaskAward(str1);
+                _bool = true;
+                return;
+            }
+            else
+            {
+                _bool = false;
+                if ((int)info.NPCID != 32504001)
+                {
+                    DefaultDialogue();
+                }
+                return;
+            }
+        }
+    }
+
+    public string pattern = @"\{(.+)\}";
+
+    public int StatusLightQuery(int _NpcID)//鐘舵�佺伅鏌ヨ
+    {
+        int Light = -1;
+        foreach (int key in allMissionDict.Keys)
+        {
+            if (allMissionDict[key].LightList.Equals(default(TsakLight)))
+            {
+                continue;
+            }
+            for (int i = 0; i < allMissionDict[key].LightList.Count; i++)
+            {
+                if (_NpcID == allMissionDict[key].LightList[i].NpcId)
+                {
+                    if (allMissionDict[key].LightList[i].StateLight > Light)
+                    {
+                        Light = allMissionDict[key].LightList[i].StateLight;
+                    }
+                }
+            }
+        }
+
+        return Light;
+    }
+
+    public void DailyFairyTaskMove()//鏃ュ父浠欑洘浠诲姟
+    {
+        if (SpecialTask.Count != 0)
+        {
+            foreach (int key in SpecialTask.Keys)
+            {
+                if (SpecialTask[key].Type == 14 && SpecialTask[key].MissionState != 3)//鏈帴浠诲姟
+                {
+                    PlayerDatas.Instance.hero.Behaviour.StopHandupAI();
+                    SnxxzGame.Instance.StartCoroutine(WaitForSkillFinished(key));
+                    return;
+                }
+            }
+        }
+        if (FairyAuDic.Count != 0)
+        {
+            foreach (int key in FairyAuDic.Keys)
+            {
+                if (FairyAuDic[key].MissionState != 0 && FairyAuDic[key].MissionState != 3)
+                {
+                    PlayerDatas.Instance.hero.Behaviour.StopHandupAI();
+                    SnxxzGame.Instance.StartCoroutine(WaitForSkillFinished(key));
+                    return;
+                }
+            }
+        }
+    }
+    public void DailyBountyMove()//鏃ュ父璧忛噾浠诲姟
+    {
+        if (SpecialTask.Count != 0)
+        {
+            foreach (int key in SpecialTask.Keys)
+            {
+                if (SpecialTask[key].Type == 13 && SpecialTask[key].MissionState != 3)//鏈帴浠诲姟
+                {
+                    PlayerDatas.Instance.hero.Behaviour.StopHandupAI();
+                    SnxxzGame.Instance.StartCoroutine(WaitForSkillFinished(key));
+                    return;
+                }
+            }
+        }
+        if (BountyDic.Count != 0)
+        {
+            foreach (int key in BountyDic.Keys)
+            {
+                if (BountyDic[key].MissionState != 0 && BountyDic[key].MissionState != 3)
+                {
+                    PlayerDatas.Instance.hero.Behaviour.StopHandupAI();
+                    SnxxzGame.Instance.StartCoroutine(WaitForSkillFinished(key));
+                    return;
+                }
+            }
+        }
+    }
+
+
+    private void AutotaskingPrecedence(bool automaticityBool, int missionID)//鍏充簬鏄惁鎵ц鑷姩浠诲姟鍜岃嚜鍔ㄤ换鍔$殑浼樺厛绾�
+    {
+        if (automaticityBool)
+        {
+            var inDungeon = IsDungeon();
+
+            if (inDungeon)//鍒ゆ柇鏄惁鍐嶅壇鏈腑瀵逛换鍔D杩涜鍌ㄥ瓨
+            {
+                retainTaskID = Autotasking(missionID);
+            }
+            else
+            {
+                retainTaskID = 0;
+                if (Autotasking(missionID) != 0)
+                {
+                    AutomaticTripToTask(Autotasking(missionID));
+                }
+            }
+        }
+    }
+
+    private int Autotasking(int taskID)
+    {
+        foreach (var value in MainTaskDic.Values)
+        {
+            if (value.MissionState != 0 && value.MissionState != 3)
+            {
+                if (allMissionDict.ContainsKey(taskID) && (allMissionDict[taskID].Time - value.Time).TotalSeconds <= 1)
+                {
+                    if (ReplaceDic.ContainsKey(value.ID))
+                    {
+                        Dictionary<string, int> _dic = ReplaceDic[value.ID];
+                        if (_dic.ContainsKey("continue") && _dic["continue"] == 1)
+                        {
+                            return value.ID;
+                        }
+                    }
+                }
+            }
+        }
+        if (ReplaceDic.ContainsKey(taskID))
+        {
+            Dictionary<string, int> _dic = ReplaceDic[taskID];
+            if (_dic.ContainsKey("continue") && _dic["continue"] == 1)
+            {
+                return taskID;
+            }
+        }
+        return 0;
+    }
+
+
+    public void AutomaticTripToTask(int _taskID)//浠诲姟鑷姩鍓嶅線锛堜换鍔℃坊鍔狅級
+    {
+        try
+        {
+            if (MainTaskDic.ContainsKey(_taskID))//涓荤嚎浠诲姟
+            {
+                if (MainTaskDic[_taskID].MissionState == 0 || MainTaskDic[_taskID].MissionState == 3)
+                    return;
+                if (MainTaskDic.ContainsKey(_taskID))
+                {
+                    PlayerDatas.Instance.hero.Behaviour.StopHandupAI();
+                    SnxxzGame.Instance.StartCoroutine(WaitForSkillFinished(_taskID));
+                    return;
+                }
+            }
+            if (BountyDic.ContainsKey(_taskID))//璧忛噾浠诲姟
+            {
+                if (BountyDic[_taskID].MissionState == 3 || BountyDic[_taskID].MissionState == 2 || BountyMotionBool)
+                {
+                    return;
+                }
+                else
+                {
+                    if (BountyDic.ContainsKey(_taskID))
+                    {
+                        PlayerDatas.Instance.hero.Behaviour.StopHandupAI();
+                        SnxxzGame.Instance.StartCoroutine(WaitForSkillFinished(_taskID));
+                        return;
+                    }
+                }
+            }
+            else if (FairyAuDic.ContainsKey(_taskID))//浠欑洘浠诲姟
+            {
+                if (FairyAuDic[_taskID].MissionState == 3 || FairyAuDic[_taskID].MissionState == 2 || FairyAuBool)
+                {
+                    return;
+                }
+                if (FairyAuDic.ContainsKey(_taskID))
+                {
+                    PlayerDatas.Instance.hero.Behaviour.StopHandupAI();
+                    SnxxzGame.Instance.StartCoroutine(WaitForSkillFinished(_taskID));
+                    return;
+                }
+            }
+            else if (SideQuestsDic.ContainsKey(_taskID))
+            {
+                if (SideQuestsDic[_taskID].MissionState == 0 || SideQuestsDic[_taskID].MissionState == 3)
+                {
+                    return;
+                }
+                else
+                {
+                    PlayerDatas.Instance.hero.Behaviour.StopHandupAI();
+                    SnxxzGame.Instance.StartCoroutine(WaitForSkillFinished(_taskID));
+                    return;
+                }
+            }
+        }
+        catch (Exception ex)
+        {
+            DebugEx.Log(ex);
+        }
+    }
+
+    public void RunTaskAwarInfo(HA708_tagMCRunTaskAwardInfo info)//閫氱煡璺戠幆濂栧姳璁板綍
+    {
+        for (int i = 0; i < info.Cnt; i++)
+        {
+            if (!AwardRecordDic.ContainsKey(info.InfoList[i].Type))
+            {
+                RunTaskAwardRecord _RunTaskAwardRecord = new RunTaskAwardRecord();
+                _RunTaskAwardRecord.Num = (int)info.InfoList[i].Num;
+                _RunTaskAwardRecord.AwardState = info.InfoList[i].AwardState;
+                AwardRecordDic.Add(info.InfoList[i].Type, _RunTaskAwardRecord);
+            }
+            else
+            {
+                AwardRecordDic[info.InfoList[i].Type].Num = (int)info.InfoList[i].Num;
+                AwardRecordDic[info.InfoList[i].Type].AwardState = info.InfoList[i].AwardState;
+            }
+            if (info.InfoList[i].Type == (int)TaskTypenum.BountyMissionsType7)
+            {
+                BountyRewardsNumber = (int)info.InfoList[i].Num;
+                if (Event_BountyRewards != null)
+                    Event_BountyRewards((int)info.InfoList[i].Num, info.InfoList[i].AwardState);
+            }
+            else if (info.InfoList[i].Type == (int)TaskTypenum.FairyAuMissionType12)
+            {
+                OnFairyAuNumber = (int)info.InfoList[i].Num;
+                if (Event_FairyAuReward != null)
+                    Event_FairyAuReward((int)info.InfoList[i].Num, info.InfoList[i].AwardState);
+            }
+        }
+    }
+
+    private PackModel m_PlayerBackModel;
+    private PackModel PlayerBackModel {
+        get {
+            return m_PlayerBackModel ?? (m_PlayerBackModel = ModelCenter.Instance.GetModel<PackModel>());
+        }
+    }
+
+    private IEnumerator WaitForSkillFinished(int _taskID)
+    {
+        GA_Hero _hero = PlayerDatas.Instance.hero;
+
+        if (_hero == null)
+        {
+            yield break;
+        }
+        while (_hero.SkillMgr.CurCastSkill != null &&
+               _hero.SkillMgr.CurCastSkill.SkillCompelete == false)
+        {
+            yield return null;
+        }
+
+        yield return WaitingForSecondConst.WaitMS500;
+
+        var _singleModel = PlayerBackModel.GetSinglePack(PackType.Equip);
+        // 濡傛灉鏈夊畧鎶�, 鍒欎笉鎷惧彇
+        var _itemModel = _singleModel.GetItemByIndex((int)RoleEquipType.SpiritAnimal);
+        if (_itemModel == null || !GeneralDefine.GuardianPickUpID.Contains(_itemModel.itemId))
+        {
+            float _chkDistanceSqrt;
+            DropItemManager.DropObject _obj = null;
+            while (DropItemManager.HandupTryGetHeroItem(out _obj))
+            {
+                if (DropItemManager.StopMissionPickup)
+                {
+                    break;
+                }
+                if (MapTransferUtility.Instance.MapTransferDoType != MapTransferUtility.E_MapTransferDoType.None)
+                {
+                    break;
+                }
+                Vector3 _targetPosition = _obj.dropItem.transform.position;
+                _chkDistanceSqrt = MathUtility.DistanceSqrtXZ(_hero.Pos, _targetPosition);
+                if (_chkDistanceSqrt > 0.5f)
+                {
+                    if (_hero.State != E_ActorState.AutoRun)
+                    {
+                        _hero.MoveToPosition(_targetPosition);
+                    }
+                }
+
+                yield return null;
+            }
+        }
+
+        if (NewBieCenter.Instance.inGuiding || ModelCenter.Instance.GetModel<TreasureModel>().newGotShowing)
+        {
+            yield break;
+        }
+
+        if (WindowCenter.Instance.IsOpen<TreasureBaseWin>())
+        {
+            yield break;
+        }
+
+        if (WindowCenter.Instance.IsOpen<MysteriousMissionWin>())
+        {
+            yield break;
+        }
+
+        if (CrossServerUtility.IsCrossServer())
+        {
+            yield break;
+        }
+
+        if (BountyDic.ContainsKey(_taskID) || FairyAuDic.ContainsKey(_taskID))
+        {
+            yield return WaitingForSecondConst.WaitMS800;//缂撳啿涓�绉掑啀杩涜
+        }
+
+        if (GA_Hero.s_MapSwitching)
+        {
+            yield break;
+        }
+        try
+        {
+            TaskMove(_taskID);
+        }
+        catch (Exception ex)
+        {
+            DebugEx.Log(ex);
+        }
+
+    }
+
+    private int GetNPCID(Dictionary<string, int> _Dic)
+    {
+        foreach (string key in _Dic.Keys)
+        {
+            string[] str = key.Split('_');
+            if (str[0] == "Show")
+            {
+                return int.Parse(str[1]);
+            }
+        }
+        return 0;
+    }
+
+    private void StorageNPCDic(string key, int Value)//鍏充簬NPC鐨勬樉闅�
+    {
+        string[] str = key.Split('_');
+        if (str[0] == "Show")
+        {
+            int NPCid = int.Parse(str[1]);
+            if (NPCShowDic.ContainsKey(NPCid))
+            {
+                NPCShowDic[NPCid] = Value;
+
+            }
+            else
+            {
+                NPCShowDic.Add(NPCid, Value);
+            }
+        }
+    }
+
+
+
+    private void IsShowNpC(int _taskID)//鍏充簬NPC鐨勬樉闅�
+    {
+        if (ReplaceDic.ContainsKey(_taskID))
+        {
+            Dictionary<string, int> showNpcDic = ReplaceDic[_taskID];
+            int Npcid = GetNPCID(showNpcDic);
+            if (Npcid != 0 && NPCShowDic.ContainsKey(Npcid))
+            {
+                if (NPCShowDic[Npcid] == 0)
+                {
+                    if (FaBaoNPCIdList.Contains(Npcid))
+                    {
+                        GA_NpcFunc.SetNpcFuncVisible(Npcid, false, 0.5f, (Vector3 _pos) =>
+                        {
+                            WindowCenter.Instance.Open<EffectToFaBaoWin>();
+                            UIeffectFabaoVec = _pos;
+                        }, 0.3f);
+                    }
+                    else
+                    {
+                        GA_NpcFunc.SetNpcFuncVisible(Npcid, false);
+                    }
+
+                }
+                else if (NPCShowDic[Npcid] == 1)
+                {
+                    GA_NpcFunc.SetNpcFuncVisible(Npcid, true);
+                }
+            }
+        }
+    }
+
+    public enum TaskStatus//浠诲姟鐘舵��
+    {
+        None = -5,//娌℃湁
+        Normal = 0,//姝e父浠诲姟锛堢豢锛�
+        TreasureCardLevel = 1,//娉曞疂鍗$骇锛堢孩锛�
+        CardLevel = 2,//绛夌骇鍗$骇锛堢孩锛�
+        Completed = 3,//绔嬪嵆瀹屾垚浠诲姟
+    }
+    public TaskStatus GetTaskStatus(int taskID)
+    {
+        if (_DicTaskInformation.ContainsKey(taskID) && _DicTaskInformation[taskID].ContainsKey("kaji"))
+        {
+            var kaji = _DicTaskInformation[taskID]["kaji"];
+
+            switch (int.Parse(kaji))
+            {
+                case 0:
+                    return TaskStatus.Normal;
+                case 1:
+                    return TaskStatus.TreasureCardLevel;
+                case 2:
+                    return TaskStatus.CardLevel;
+                case 3:
+                    return TaskStatus.Completed;
+                default:
+                    return TaskStatus.None;
+            }
+        }
+        else
+        {
+            return TaskStatus.None;
+        }
+
+    }
+    private bool IsDungeon()//鍒ゆ柇鏄惁鍦ㄥ壇鏈腑
+    {
+        var mapId = PlayerDatas.Instance.baseData.MapID;
+        var mapConfig = MapConfig.Get(mapId);
+        return mapConfig != null && mapConfig.MapFBType != 0;
+    }
+    public bool IsGather(int npdId)//鏄惁鑳介噰闆哊PC
+    {
+        var taskListConfig = TaskListConfig.Get(currentMission);
+        if (taskListConfig != null)
+        {
+            int[] collectNPCList = taskListConfig.CollectNPC;
+            if ((collectNPCList.Length == 1 && collectNPCList[0] == 0) || GetTaskStatus(currentMission) != 0)
+            {
+                return false;
+
+            }
+            for (int i = 0; i < collectNPCList.Length; i++)
+            {
+                if (collectNPCList[i] == npdId)
+                {
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+
+    public static bool IsOPenAutoResolve()//浠诲姟闈㈡澘涓嶅紑鍚嚜鍔ㄦ寕鏈虹姸鎬�
+    {
+        bool _bool = true;
+        if (WindowCenter.Instance.IsOpen<TaskBoxBGMWin>())
+        {
+            _bool = false;
+        }
+        else if (WindowCenter.Instance.IsOpen<DefaultDialogueBoxWin>())
+        {
+            _bool = false;
+        }
+        else if (WindowCenter.Instance.IsOpen<DialogueDuidanceWin>())
+        {
+            _bool = false;
+        }
+        return _bool;
+    }
+
+    private int BOUNTYTASK = 2009;//璧忛噾浠诲姟
+    private int FAIRYAUTASK = 3009;//浠欑洘浠诲姟
+    private void TaskTerminationToHangUp(int taskID, int MissionState)//(瀹屾垚浠诲姟鍚庡墠寰�鎸傛満鍦扮偣)浠诲姟ID锛屼换鍔$姸鎬�
+    {
+        if (!AutomaticityBool)
+        {
+            return;
+        }
+        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 = MapEventPointConfig.Get(point);
+            MapTransferUtility.Instance.MoveToNPC(config.NPCID);
+
+        }
+    }
+    public void CompletionOfTask(int TaskID)//浠诲姟瀹屾垚
+    {
+        CA206_tagCMQuickFinishMission _CA206 = new CA206_tagCMQuickFinishMission();
+        _CA206.MissionID = (uint)TaskID;
+        _CA206.DoType = 0;
+        GameNetSystem.Instance.SendInfo(_CA206);
+    }
+
+    public int SideQuestState(int TaskID)//鍏充簬鏌ヨ浠诲姟鐨勭姸鎬侊紙-1娌℃湁姝や换鍔★紝0鏈帴,1姝e湪杩涜涓紝2鍙彁浜わ級
+    {
+        if (allMissionDict.ContainsKey(TaskID))
+        {
+            return allMissionDict[TaskID].MissionState;
+        }
+        else
+        {
+            return -1;
+        }
+    }
+
+    public int GetQuestState(int _taskId)
+    {
+        if (allMissionDict.ContainsKey(_taskId))
+        {
+            return allMissionDict[_taskId].MissionState;
+        }
+        else
+        {
+            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;
+        }
+    }
+
+
+    public bool IsTaskMove()
+    {
+        bool IsBool = false;
+        if (!WindowCenter.Instance.IsOpen<MainInterfaceWin>())
+        {
+            return IsBool;
+        }
+        if (PlayerDatas.Instance.baseData.LV > TaskAutoLv)
+        {
+            return IsBool;
+        }
+        if (GetTaskStatus(currentMission) == TaskStatus.Normal)
+        {
+            IsBool = true;
+        }
+        return IsBool;
+    }
+    public void TaskMove(int _taskID)
+    {
+        if (allMissionDict.ContainsKey(_taskID) && !NewBieCenter.Instance.inGuiding)
+        {
+            string _strTest = allMissionDict[_taskID].InforList;
+            string strTask = TaskAllocation.Instance.GetTaskInfo(TASKINFOConfig.Get(_strTest).show_writing, _taskID);
+            HrefAnalysis.Inst.ExcuteHrefEvent(strTask);
+            DropItemManager.StopMissionPickup = false;
+            TaskAllocation.Instance.TaskTime = TimeUtility.ServerNow;
+        }
+    }
+}

--
Gitblit v1.8.0