少年修仙传客户端代码仓库
client_Hale
2019-04-28 08b00213a00357937510bbcaeaa890e1a84ae572
382 任务控制NPC显隐逻辑修改
1个文件已修改
133 ■■■■■ 已修改文件
System/MainInterfacePanel/TaskModel.cs 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/TaskModel.cs
@@ -246,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;
            }
@@ -1365,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)
@@ -1392,9 +1392,9 @@
    {
        foreach (string key in _Dic.Keys)
        {
            if (key.Equals("Show_{visit_npc_id}"))
            {
                continue;
            if (key.Equals("Show_{visit_npc_id}"))
            {
                continue;
            }
            string[] str = key.Split('_');
            if (str[0] == "Show")
@@ -1405,27 +1405,42 @@
        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;
            return;
        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"))
        {
            if (m_ShowNpcCache.ContainsKey((int)taskId))
            {
                Task0820(new H0820_tagMissionDict()
                {
                    MissionID = taskId,
                    DictKey = "Show_" + Value,
                    DictValue = (uint)m_ShowNpcCache[(int)taskId],
                });
                m_ShowNpcCache.Remove((int)taskId);
            }
            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('_');
@@ -1717,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,
    }
}