/// <summary> /// 刷新成就数据 /// </summary> /// <param name="cmd"></param> public void OnResponRefreshAchieveData(List <AchieveData> data, uint achieve_num) { if (data != null) { for (int i = 0; i < data.Count; i++) { uint id = data[i].id; if (achievementServerData.ContainsKey(id)) { achievementServerData[id].progress = data[i].progress; achievementServerData[id].status = data[i].status; } else { achievementServerData.Add(id, data[i]); } if (data[i].status == (uint)AchieveStatus.AchieveStatus_CanReceive) { table.AchievementDataBase table = GameTableManager.Instance.GetTableItem <table.AchievementDataBase>(id); if (table != null) { TipsManager.Instance.ShowTips(table.tips); DataManager.Manager <ChatDataManager>().PrivateChatManager.AddChat(new GameCmd.stCommonMChatUserCmd_CS() { szInfo = table.tips, byChatType = CHATTYPE.CHAT_SYS, dwOPDes = 0, szOPDes = "系统", timestamp = (uint)DateTimeHelper.Instance.Now, }); } } else if (data[i].status == (uint)AchieveStatus.AchieveStatus_HaveReceive) { table.AchievementDataBase table = GameTableManager.Instance.GetTableItem <table.AchievementDataBase>(id); if (table != null) { haveAchievePoint += table.get_point; } } } } if (HaveCanReceiveAchieve()) { Engine.Utility.EventEngine.Instance().DispatchEvent((int)Client.GameEventID.REFRESHACHIEVEMENTPUSH, null); stShowMainPanelRedPoint st = new stShowMainPanelRedPoint() { modelID = (int)WarningEnum.Achievement, direction = (int)WarningDirection.Left, bShowRed = true, }; Engine.Utility.EventEngine.Instance().DispatchEvent((int)Client.GameEventID.MAINPANEL_SHOWREDWARING, st); } DispatchValueUpdateEvent(new ValueUpdateEventArgs(AchieveDispatchEvents.RefreshAchieveInfo.ToString(), null, null)); }
/// <summary> /// 领取奖励成功 /// </summary> /// <param name="cmd"></param> public void OnResponGetAchieveReward(stGetAchieveRewardDataUserCmd_CS cmd) { if (cmd != null) { for (int i = 0; i < cmd.id.Count; i++) { uint id = cmd.id[i]; if (achievementServerData.ContainsKey(id)) { achievementServerData[id].status = (uint)AchieveStatus.AchieveStatus_HaveReceive; table.AchievementDataBase table = GameTableManager.Instance.GetTableItem <table.AchievementDataBase>(id); if (table == null) { Engine.Utility.Log.Error("成就表格找不到对应ID为{0}的数据", id); } else { haveAchievePoint += table.get_point; if (table.title != 0) { TitleDataBase title = GameTableManager.Instance.GetTableItem <TitleDataBase>(table.title); TipsManager.Instance.ShowTips(DataManager.Manager <TextManager>().GetLocalFormatText(LocalTextType.Local_TXT_Notice_GetTitle, title.strName)); } } } } } if (HaveCanReceiveAchieve()) { Engine.Utility.EventEngine.Instance().DispatchEvent((int)Client.GameEventID.REFRESHACHIEVEMENTPUSH, null); stShowMainPanelRedPoint st = new stShowMainPanelRedPoint() { modelID = (int)WarningEnum.Achievement, direction = (int)WarningDirection.Left, bShowRed = true, }; Engine.Utility.EventEngine.Instance().DispatchEvent((int)Client.GameEventID.MAINPANEL_SHOWREDWARING, st); } DispatchValueUpdateEvent(new ValueUpdateEventArgs(AchieveDispatchEvents.GetAchieveReward.ToString(), null, null)); }