public static void SetRankRule(string info) { var ruleList = info.Split(','); foreach (var rule in ruleList) { var ru = rule.Split(':'); RankRule.Add(ru[0], Convert.ToDouble(ru[1])); } }
private double GetGoodsPrice() { double ITalentPrice = 0; double IAchievementPrice = 0; var thisTalent = Convert.ToDouble(this.ITalent); var thisAchievement = Convert.ToDouble(this.IAchievement); foreach (var talentRank in ITalentPriceHandle) { if (thisTalent > talentRank.Key) { ITalentPrice = talentRank.Value; } else { break; } } foreach (var achievementRank in IAchievementPriceHandle) { if (thisAchievement > achievementRank.Key) { IAchievementPrice = achievementRank.Value; } else { break; } } double IRankPrice; if (this.IFlyupFlag == "1") { IRankPrice = Convert.ToDouble(RankRule.ContainsKey("飞升") ? RankRule["飞升"] : -40404); } else { IRankPrice = Convert.ToDouble(RankRule.ContainsKey("其他") ? RankRule["其他"] : -40406); } var assert = Convert.ToDouble(ICash) + Convert.ToDouble(ISaving); assert /= 550000; //设置为单位财产价值 assert = Math.Round(assert, 0); var 帮派成就价 = Math.Round(Convert.ToDouble(IChengjiu) / 2000, 0); var 家具回灵价 = Convert.ToDouble(iSingleEnergyRate) >= 500 ? 60 : 0; Program.setting.LogInfo(string.Format("人物估价: Max(等级({0}),{6}等级=> 天赋({1})+成就({2}))+财产({3})+帮派成就({4})+家具回灵({5})", IRankPrice, ITalentPrice, IAchievementPrice, assert, 帮派成就价, 家具回灵价, IFlyupFlag == "1" ? "飞升" : "3转"), server.ServerName); return(Math.Max(IRankPrice, this.IFlyupFlag == "1"?ITalentPrice + IAchievementPrice:0) + assert + 帮派成就价 + 家具回灵价); }
private void CalculateRanking(UserGameType userGame, SqlTransaction t) { User item = new User(game.Cxt, userGame.UserID); //Calculate Ranking if (item == null || item.UserID <= 16) { return; } RankRule rankRule = RankRules.Instance.GetRankRule(userGame.EloRating, userGame.NoOfGames, item.LoginDays.Days, userGame.ChessTypeID); switch (userGame.ChessTypeIDE) { case ChessTypeE.None: break; case ChessTypeE.Human: #region GameType switch (game.GameTypeIDE) { case GameType.None: break; case GameType.Bullet: break; case GameType.Blitz: item.HumanRankIDE = rankRule.RankIDE; break; case GameType.Rapid: break; case GameType.Long: break; default: break; } #endregion break; case ChessTypeE.Engine: #region GameType switch (game.GameTypeIDE) { case GameType.None: break; case GameType.Bullet: break; case GameType.Blitz: break; case GameType.Rapid: item.EngineRankIDE = rankRule.RankIDE; break; case GameType.Long: break; default: break; } #endregion break; case ChessTypeE.Centaur: item.CentaurRankIDE = rankRule.RankIDE; break; case ChessTypeE.Correspondence: item.CorrespondenceRankIDE = rankRule.RankIDE; break; } //Save Ranking item.Save(); }