private bool SetFinishNum(GameClient client, TodayInfo todayInfo, SystemXmlItem fuBenInfo) { int num = todayInfo.NumMax - todayInfo.NumEnd; switch ((ETodayType)todayInfo.Type) { case ETodayType.Exp: case ETodayType.Gold: Global.UpdateFuBenData(client, todayInfo.FuBenID, num, num); break; case ETodayType.KaLiMa: case ETodayType.EM: case ETodayType.Lo: Global.UpdateFuBenData(client, todayInfo.FuBenID, num, num); break; case ETodayType.Tao: { DailyTaskData taoData = null; Global.GetDailyTaskData(client, (int)TaskClasses.TaofaTask, out taoData, true); taoData.RecNum = todayInfo.NumMax; Global.UpdateDBDailyTaskData(client, taoData, true); } break; } FuBenData fuBenData = Global.GetFuBenData(client, todayInfo.FuBenID); if (fuBenData != null && (fuBenData.EnterNum != 0 || fuBenData.FinishNum != 0)) { //记录通关副本数量 int dayID = TimeUtil.NowDateTime().DayOfYear; RoleDailyData roleData = client.ClientData.MyRoleDailyData; if (null == roleData || dayID != roleData.FuBenDayID) { roleData = new RoleDailyData(); roleData.FuBenDayID = dayID; client.ClientData.MyRoleDailyData = roleData; } int count = todayInfo.NumMax - todayInfo.NumEnd; roleData.TodayFuBenNum += count; int level = fuBenInfo.GetIntValue("FuBenLevel"); DailyActiveManager.ProcessCompleteCopyMapForDailyActive(client, level, count); //活跃 ChengJiuManager.ProcessCompleteCopyMapForChengJiu(client, level, count); //成就 } return(true); }
/// <summary> /// 检查“每日活跃”项是否要显示要更新图标状态 /// </summary> public bool CheckFuLiMeiRiHuoYue(GameClient client) { // 判断目前的活跃值是否够领奖 foreach (KeyValuePair <int, SystemXmlItem> kvp in GameManager.systemDailyActiveAward.SystemXmlItemDict) { int nAwardDailyActiveValue = Math.Max(0, kvp.Value.GetIntValue("NeedhuoYue")); int nID = kvp.Value.GetIntValue("ID"); // 活跃值够 if (nAwardDailyActiveValue <= client.ClientData.DailyActiveValues) { // 还没领过奖 if (DailyActiveManager.IsDailyActiveAwardFetched(client, nID) <= 0) { return(AddFlushIconState((ushort)ActivityTipTypes.FuLiMeiRiHuoYue, true)); } } } // 活跃值不够或已经领过奖了 return(AddFlushIconState((ushort)ActivityTipTypes.FuLiMeiRiHuoYue, false)); }
private bool SetFinishNum(GameClient client, TodayInfo todayInfo, SystemXmlItem fuBenInfo) { int num = todayInfo.NumMax - todayInfo.NumEnd; switch (todayInfo.Type) { case 1: case 2: Global.UpdateFuBenData(client, todayInfo.FuBenID, num, num); break; case 3: case 4: case 5: Global.UpdateFuBenData(client, todayInfo.FuBenID, num, num); break; case 6: { DailyTaskData taoData = null; Global.GetDailyTaskData(client, 9, out taoData, true); taoData.RecNum = todayInfo.NumMax; Global.UpdateDBDailyTaskData(client, taoData, true); break; } case 7: { int nType = 2; Global.UpdateDayActivityEnterCountToDB(client, client.ClientData.RoleID, TimeUtil.NowDateTime().DayOfYear, nType, todayInfo.NumMax); break; } case 8: { int nType = 1; Global.UpdateDayActivityEnterCountToDB(client, client.ClientData.RoleID, TimeUtil.NowDateTime().DayOfYear, nType, todayInfo.NumMax); break; } case 9: { int nType = 6; Global.UpdateDayActivityEnterCountToDB(client, client.ClientData.RoleID, TimeUtil.NowDateTime().DayOfYear, nType, todayInfo.NumMax); break; } case 10: case 11: case 12: Global.UpdateFuBenData(client, todayInfo.FuBenID, num, num); break; } FuBenData fuBenData = Global.GetFuBenData(client, todayInfo.FuBenID); if (fuBenData != null && (fuBenData.EnterNum != 0 || fuBenData.FinishNum != 0)) { int dayID = TimeUtil.NowDateTime().DayOfYear; RoleDailyData roleData = client.ClientData.MyRoleDailyData; if (roleData == null || dayID != roleData.FuBenDayID) { roleData.FuBenDayID = dayID; roleData.TodayFuBenNum = 0; } int count = todayInfo.NumMax - todayInfo.NumEnd; roleData.TodayFuBenNum += count; int level = fuBenInfo.GetIntValue("FuBenLevel", -1); DailyActiveManager.ProcessCompleteCopyMapForDailyActive(client, level, count); ChengJiuManager.ProcessCompleteCopyMapForChengJiu(client, level, count); } return(true); }