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); } } } } }
/// <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); } } } } }