Esempio n. 1
0
		public void ModifyWanMoTaPaihangData(WanMotaInfo data, bool bIsLogin)
		{
			if (null != data)
			{
				lock (this.rankingDatas)
				{
					PlayerWanMoTaRankingData result = this.rankingDatas.Find((PlayerWanMoTaRankingData paiHang) => paiHang.roleId == data.nRoleID);
					if (null == result)
					{
						if (this.rankingDatas.Count < WanMoTaManager.RankingList_Max_Num)
						{
							this.rankingDatas.Add(data.getPlayerWanMoTaRankingData());
						}
						else if (data.nPassLayerCount > this.rankingDatas[this.rankingDatas.Count - 1].passLayerCount)
						{
							this.rankingDatas.RemoveAt(this.rankingDatas.Count - 1);
							this.rankingDatas.Add(data.getPlayerWanMoTaRankingData());
						}
					}
					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 ModifyWanMoTaPaihangData(WanMotaInfo data, bool bIsLogin)
        {
            if (null == data)
            {
                return;
            }

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

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