Esempio n. 1
0
 public void ModifyWingPaihangData(WingRankingInfo data, bool bIsLogin)
 {
     if (null != data)
     {
         lock (this.rankingDatas)
         {
             PlayerWingRankingData result = this.rankingDatas.Find((PlayerWingRankingData paiHang) => paiHang.roleId == data.nRoleID);
             if (null == result)
             {
                 if (this.rankingDatas.Count < WingPaiHangManager.RankingList_Max_Num)
                 {
                     this.rankingDatas.Add(data.getPlayerWingRankingData());
                 }
                 else if (data.nWingID * 20 + data.nStarNum > this.rankingDatas[this.rankingDatas.Count - 1].WingID * 20 + this.rankingDatas[this.rankingDatas.Count - 1].WingStarNum)
                 {
                     this.rankingDatas.RemoveAt(this.rankingDatas.Count - 1);
                     this.rankingDatas.Add(data.getPlayerWingRankingData());
                 }
             }
             else if (!bIsLogin)
             {
                 try
                 {
                     result.UpdateData(data);
                     this.rankingDatas.Sort();
                 }
                 catch (Exception ex)
                 {
                     DataHelper.WriteFormatExceptionLog(ex, "", false, false);
                 }
             }
         }
     }
 }
Esempio n. 2
0
        /// <summary>
        /// 修改翅膀排行榜数据
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public void ModifyWingPaihangData(WingRankingInfo data, bool bIsLogin)
        {
            if (null == data)
            {
                return;
            }

            lock (rankingDatas)
            {
                PlayerWingRankingData result = rankingDatas.Find(
                    delegate(PlayerWingRankingData paiHang)
                {
                    return(paiHang.roleId == data.nRoleID);
                }
                    );

                // 如果没有在排行榜中,看看能不能添加
                if (null == result)
                {
                    // 排行榜数据量是有限制的
                    if (rankingDatas.Count < RankingList_Max_Num)
                    {
                        rankingDatas.Add(data.getPlayerWingRankingData());
                    }
                    else
                    {
                        // 如果数据好于排行榜最后一名,把排行榜最后移除掉,用其代替
                        if (data.nWingID * 20 + data.nStarNum > rankingDatas[rankingDatas.Count - 1].WingID * 20 + rankingDatas[rankingDatas.Count - 1].WingStarNum)
                        {
                            rankingDatas.RemoveAt(rankingDatas.Count - 1);
                            rankingDatas.Add(data.getPlayerWingRankingData());
                        }
                    }
                }
                // 在排行榜中,用新数据重新排序
                else
                {
                    // 由参数控制,登录时数据没有改变,不需要重新排序
                    if (!bIsLogin)
                    {
                        try
                        {
                            rankingDatas.Sort();
                        }
                        catch (Exception ex)
                        {
                            DataHelper.WriteFormatExceptionLog(ex, "", false);
                        }
                    }
                }
            }
        }