少年修仙传客户端代码仓库
client_Wu Xijin
2019-04-29 469866975156c12945f65f0d6f7e6d57ec4f782f
System/MainInterfacePanel/TaskModel.cs
@@ -69,6 +69,9 @@
    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的显隐问题
    Dictionary<int, int> m_ShowNpcCache = new Dictionary<int, int>();
    public delegate void OnTaskToAdd(int MissionID, int MissionState, int DiscriptionIndex);
    public static event OnTaskToAdd Event_TaskToAdd;//任务添加
    public delegate void OnTaskRefreshes(int _taskId);
@@ -186,6 +189,7 @@
        ReplaceDic.Clear();
        AwardRecordDic.Clear();
        NPCShowDic.Clear();
        m_ShowNpcCache.Clear();
        _conversation = null;
        _DefaultDialogContent = null;
        _TaskNow = 0;
@@ -242,10 +246,10 @@
                currentMissionState = MissionState;
            }
            //仙盟任务完成
            if ((pytaskM.type == 12||pytaskM.type == 14) && TaskAllocation.Instance.FairyAuAllNumber() >= FairyAuTaskCount_Day)
            {
                Event_FairyAuTask();
                return;
            if ((pytaskM.type == 12 || pytaskM.type == 14) && TaskAllocation.Instance.FairyAuAllNumber() >= FairyAuTaskCount_Day)
            {
                Event_FairyAuTask();
                return;
            }
@@ -1361,12 +1365,12 @@
            yield return WaitingForSecondConst.WaitMS800;//缓冲一秒再进行
        }
        if (MainTaskDic.ContainsKey(_taskID))//主线等待表现
        {
            if (taskWait.wait)
            {
                yield return WaitingForSecondConst.GetWaitForSeconds(mainTaskAutoWaitTime);
            }
        if (MainTaskDic.ContainsKey(_taskID))//主线等待表现
        {
            if (taskWait.wait)
            {
                yield return WaitingForSecondConst.GetWaitForSeconds(mainTaskAutoWaitTime);
            }
        }
        if (GA_Hero.s_MapSwitching)
@@ -1388,6 +1392,10 @@
    {
        foreach (string key in _Dic.Keys)
        {
            if (key.Equals("Show_{visit_npc_id}"))
            {
                continue;
            }
            string[] str = key.Split('_');
            if (str[0] == "Show")
            {
@@ -1397,8 +1405,44 @@
        return 0;
    }
    private int CacheNpcID = 0;
    private void StorageNPCDic(uint taskId, string key, int Value)//关于NPC的显隐
    {
        if (key.Equals("Show_{visit_npc_id}"))
        {
            m_ShowNpcCache[(int)taskId] = Value;
            if (CacheNpcID != 0)
            {
                Task0820(new H0820_tagMissionDict()
                {
                    MissionID = taskId,
                    DictKey = "Show_" + CacheNpcID,
                    DictValue = (uint)m_ShowNpcCache[(int)taskId],
                });
                m_ShowNpcCache.Remove(CacheNpcID);
                CacheNpcID = 0;
            }
            return;
        }
        if (key.Equals("visit_npc_id"))
        {
            CacheNpcID = Value;
            if (m_ShowNpcCache.ContainsKey((int)taskId))
            {
                Task0820(new H0820_tagMissionDict()
                {
                    MissionID = taskId,
                    DictKey = "Show_" + CacheNpcID,
                    DictValue = (uint)m_ShowNpcCache[(int)taskId],
                });
                m_ShowNpcCache.Remove((int)taskId);
                CacheNpcID = 0;
            }
            return;
        }
        string[] str = key.Split('_');
        if (str[0] == "Show")
        {
@@ -1688,36 +1732,36 @@
        }
    }
    public class TaskWait
    {
        public bool wait
        {
            get
            {
                foreach (var key in taskWaits.Keys)
                {
                    if ((TimeUtility.ServerNow - taskWaits[key]).TotalSeconds < 1f)
                    {
                        return true;
                    }
                }
                return false;
            }
        }
        Dictionary<TaskWaitType, DateTime> taskWaits = new Dictionary<TaskWaitType, DateTime>();
        public void Push(TaskWaitType type)
        {
            taskWaits[type] = TimeUtility.ServerNow;
        }
    public class TaskWait
    {
        public bool wait
        {
            get
            {
                foreach (var key in taskWaits.Keys)
                {
                    if ((TimeUtility.ServerNow - taskWaits[key]).TotalSeconds < 1f)
                    {
                        return true;
                    }
                }
                return false;
            }
        }
        Dictionary<TaskWaitType, DateTime> taskWaits = new Dictionary<TaskWaitType, DateTime>();
        public void Push(TaskWaitType type)
        {
            taskWaits[type] = TimeUtility.ServerNow;
        }
    }
    public enum TaskWaitType
    {
        TaskComplete,
        LevelUp,
        TreasureProgress,
        BetterEquip,
    public enum TaskWaitType
    {
        TaskComplete,
        LevelUp,
        TreasureProgress,
        BetterEquip,
    }
}