Example #1
0
        private void LoadEraRankData()
        {
            MySqlDataReader sdr = null;

            try
            {
                this.EraRankList.V.Clear();
                string strSql = string.Format("SELECT `juntuanid`, `stage`, `process`, `ranktm` FROM t_juntuan_era WHERE `eraid`={0} AND (`stage`>1 OR (`stage`=1 AND `process`>0))\r\n                                ORDER BY `stage` DESC, `process` DESC, `ranktm` ASC LIMIT {1};", this.RuntimeData.CurrentEraID, 5);
                sdr = DbHelperMySQL.ExecuteReader(strSql, false);
                int index = 1;
                while (sdr != null && sdr.Read())
                {
                    KFEraRankData data = new KFEraRankData();
                    data.RankValue       = index;
                    data.JunTuanID       = Convert.ToInt32(sdr["juntuanid"].ToString());
                    data.EraStage        = Convert.ToByte(sdr["stage"].ToString());
                    data.EraStageProcess = Convert.ToInt32(sdr["process"].ToString());
                    string strRankTm = sdr["ranktm"].ToString();
                    if (!string.IsNullOrEmpty(strRankTm))
                    {
                        DateTime.TryParse(strRankTm, out data.RankTime);
                    }
                    this.EraRankList.V.Add(data);
                    index++;
                }
                TimeUtil.AgeByNow(ref this.EraRankList.Age);
            }
            catch (Exception ex)
            {
                LogManager.WriteExceptionUseCache(ex.ToString());
            }
            finally
            {
                if (null != sdr)
                {
                    sdr.Close();
                }
            }
        }
Example #2
0
        private bool HandleAddEraProcess(KuaFuData <KFEraData> data, EraTaskConfig taskConfig)
        {
            bool result;

            if (taskConfig.EraStage != (int)data.V.EraStage)
            {
                result = false;
            }
            else
            {
                int oldEraStageProcess = data.V.EraStageProcess;
                int oldEraStage        = (int)data.V.EraStage;
                data.V.EraStageProcess = Math.Min(data.V.EraStageProcess + taskConfig.Reward, 100);
                if (data.V.EraStageProcess == 100 && data.V.EraStage < 4)
                {
                    data.V.EraStage        = (byte)Math.Min((int)(data.V.EraStage + 1), 4);
                    data.V.EraStageProcess = 0;
                    AsyncDataItem evItem = new AsyncDataItem(KuaFuEventTypes.JunTuanEraStage, new object[]
                    {
                        data.V.JunTuanID
                    });
                    ClientAgentManager.Instance().BroadCastAsyncEvent(GameTypes.JunTuan, evItem, 0);
                    data.V.EraTimePointList.Add(TimeUtil.NowDateTime());
                }
                if (data.V.EraStageProcess == oldEraStageProcess && (int)data.V.EraStage == oldEraStage)
                {
                    result = false;
                }
                else
                {
                    if (data.V.EraStageProcess == 100 && data.V.EraStage == 4)
                    {
                        data.V.EraTimePointList.Add(TimeUtil.NowDateTime());
                    }
                    this.HandleFastEraStage(data.V);
                    bool          needSort = false;
                    KFEraRankData rankData = this.EraRankList.V.Find((KFEraRankData x) => x.JunTuanID == data.V.JunTuanID);
                    if (null != rankData)
                    {
                        needSort                 = true;
                        rankData.JunTuanID       = data.V.JunTuanID;
                        rankData.EraStage        = data.V.EraStage;
                        rankData.EraStageProcess = data.V.EraStageProcess;
                        rankData.RankTime        = TimeUtil.NowDateTime();
                    }
                    else if (this.EraRankList.V.Count < 5)
                    {
                        needSort                 = true;
                        rankData                 = new KFEraRankData();
                        rankData.JunTuanID       = data.V.JunTuanID;
                        rankData.EraStage        = data.V.EraStage;
                        rankData.EraStageProcess = data.V.EraStageProcess;
                        rankData.RankTime        = TimeUtil.NowDateTime();
                        this.EraRankList.V.Add(rankData);
                    }
                    else
                    {
                        KFEraRankData minRankData = this.EraRankList.V[this.EraRankList.V.Count - 1];
                        if (data.V.EraStage > minRankData.EraStage || (data.V.EraStage == minRankData.EraStage && data.V.EraStageProcess > minRankData.EraStageProcess))
                        {
                            needSort = true;
                            minRankData.JunTuanID       = data.V.JunTuanID;
                            minRankData.EraStage        = data.V.EraStage;
                            minRankData.EraStageProcess = data.V.EraStageProcess;
                            minRankData.RankTime        = TimeUtil.NowDateTime();
                        }
                    }
                    if (needSort)
                    {
                        this.EraRankList.V.Sort(delegate(KFEraRankData left, KFEraRankData right)
                        {
                            int result2;
                            if (left.EraStage > right.EraStage)
                            {
                                result2 = -1;
                            }
                            else if (left.EraStage < right.EraStage)
                            {
                                result2 = 1;
                            }
                            else if (left.EraStageProcess > right.EraStageProcess)
                            {
                                result2 = -1;
                            }
                            else if (left.EraStageProcess < right.EraStageProcess)
                            {
                                result2 = 1;
                            }
                            else if (left.RankTime < right.RankTime)
                            {
                                result2 = -1;
                            }
                            else if (left.RankTime > right.RankTime)
                            {
                                result2 = 1;
                            }
                            else
                            {
                                result2 = 0;
                            }
                            return(result2);
                        });
                        for (int loop = 0; loop < this.EraRankList.V.Count; loop++)
                        {
                            this.EraRankList.V[loop].RankValue = loop + 1;
                        }
                        TimeUtil.AgeByNow(ref this.EraRankList.Age);
                    }
                    result = true;
                }
            }
            return(result);
        }