Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        /// <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));
        }
Ejemplo n.º 3
0
        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);
        }