public void UpdateQuestList(CliProto.SC_GIFT_DAY_NTF netMsg) { m_questInfos.Clear(); Hashtable dailyQuestDB = sdConfDataMgr.Instance().m_dailyQuestDB; foreach (DictionaryEntry item in dailyQuestDB) { DailyQuest dailyQuest = item.Value as DailyQuest; QuestInfo questInfo = new QuestInfo(); questInfo.questType = (uint)dailyQuest.DayQuestType; questInfo.questFinishedTimes = 0; questInfo.questIdx = dailyQuest.DayQuestId; questInfo.questTotalTimes = dailyQuest.DayQuestCount; questInfo.questScroe = dailyQuest.DayQuestScore; questInfo.questTitile = dailyQuest.QuestTitle; questInfo.questDescript = dailyQuest.QuestDescription; questInfo.finished = false; //m_questInfos.Insert(questInfo.questIdx-1, questInfo); m_questInfos.Add(questInfo); //if(questInfo.questScroe > m_maxScore) // m_maxScore = questInfo.questScroe; } m_questInfos.Sort(delegate(QuestInfo x, QuestInfo y) { return(x.questIdx.CompareTo(y.questIdx)); }); for (int i = 0; i < netMsg.m_Count; i++) { foreach (QuestInfo item in m_questInfos) { if (item.questType == netMsg.m_Info[i].m_QuestId) { item.questFinishedTimes = netMsg.m_Info[i].m_FinishProgress; if (netMsg.m_Info[i].m_ScoreReceived == 0) { item.finished = false; } else { m_curScore += item.questScroe; item.finished = true; } } } } if (m_goWndRoot != null && _bWndOpen) { RefreshAwardBox(); RefreshQuestList(false); } }
private static void msg_SC_GIFT_DAY_NTF(int iMsgID, ref CMessage msg) { CliProto.SC_GIFT_DAY_NTF netMsg = (CliProto.SC_GIFT_DAY_NTF)msg; EverydayQuestWnd.Instance.UpdateQuestList(netMsg); }