internal static List <PC> GetScoresWithoutSP(Character.ClassType classType, int amount, bool devRequest, string playerName, bool pvp) { using (var conn = DataAccess.GetSQLConnection()) { var scoresList = new List <PC>(); var score = new PC(); int rank = 1; try { var selectScores = new SqlCommand(); var selectByClassType = classType != Character.ClassType.None && classType != Character.ClassType.All ? "WHERE classType = '" + classType.ToString() + "'" : ""; var selectDevRequest = devRequest ? "1" : "0"; selectScores.Connection = conn; selectScores.CommandText = "SELECT [playerID], land, [name], classType, classFullName, [level], [exp], numKills, roundsPlayed, lastOnline, pvpKills, pvpDeaths, currentKarma, impLevel"; selectScores.CommandText += " FROM Player " + selectByClassType; if (!devRequest) { if (selectByClassType.Length > 0) { selectScores.CommandText += " AND impLevel = '0'"; } else { selectScores.CommandText += "WHERE impLevel = '0'"; } } selectScores.CommandText = selectScores.CommandText.TrimEnd(); selectScores.CommandText += " ORDER BY [exp] DESC"; DataTable dtScores = new DataTable(); selectScores.Connection.Open(); dtScores.Load(selectScores.ExecuteReader()); selectScores.Connection.Close(); foreach (DataRow dr in dtScores.Rows) { if (playerName != "") { if (dr["name"].ToString().ToLower() == playerName.ToString().ToLower()) { score = new PC(); score.UniqueID = Convert.ToInt32(dr["playerID"]); score.IsAnonymous = (bool)PC.GetField(score.UniqueID, "anonymous", score.IsAnonymous, null); if (score.IsAnonymous) { if (devRequest) { score.TemporaryStorage = rank; score = ConvertRowToScore(score, dr, devRequest); scoresList.Add(score); } return(scoresList); } else { score.TemporaryStorage = rank; score = ConvertRowToScore(score, dr, devRequest); scoresList.Add(score); return(scoresList); } } if (Convert.ToInt32(dr["impLevel"]) == 0 || score.Name.ToLower() == playerName.ToLower()) { rank++; } } else { if (amount == 0) { break; } score = new PC(); score.UniqueID = Convert.ToInt32(dr["playerID"]); score.IsAnonymous = (bool)PC.GetField(score.UniqueID, "anonymous", score.IsAnonymous, null); if (devRequest) // devs get to see a list of everyone { score.TemporaryStorage = rank; // player ID is used to store the player's rank score = ConvertRowToScore(score, dr, devRequest); scoresList.Add(score); if (!score.IsAnonymous && score.ImpLevel == Globals.eImpLevel.USER) { amount--; } } else // only add the score to the list if they are not anonymous { score.TemporaryStorage = rank; score = ConvertRowToScore(score, dr, devRequest); scoresList.Add(score); amount--; } rank++; } } return(scoresList); } catch (Exception e) { Utils.LogException(e); } } return(null); }
internal static List <PC> GetScores(Character.ClassType classType, int amount, bool devRequest, string playerName, bool pvp) { var scoresList = new List <PC>(); var score = new PC(); int rank = 1; using (var conn = DataAccess.GetSQLConnection()) { try { SqlStoredProcedure sp = new SqlStoredProcedure("prApp_Scores_Select", conn); sp.AddParameter("@devRequest", SqlDbType.Bit, 1, ParameterDirection.Input, devRequest); sp.AddParameter("@classType", SqlDbType.VarChar, 50, ParameterDirection.Input, classType.ToString()); DataTable dtScores = sp.ExecuteDataTable(); foreach (DataRow dr in dtScores.Rows) { if (playerName != "") { if (dr["name"].ToString().ToLower() == playerName.ToString().ToLower()) { score = new PC(); score.UniqueID = Convert.ToInt32(dr["playerID"]); score.IsAnonymous = (bool)PC.GetField(score.UniqueID, "anonymous", score.IsAnonymous, null); if (score.IsAnonymous) { if (devRequest) { score.TemporaryStorage = rank; score = ConvertRowToScore(score, dr, devRequest); scoresList.Add(score); } return(scoresList); } else { score.TemporaryStorage = rank; score = ConvertRowToScore(score, dr, devRequest); scoresList.Add(score); return(scoresList); } } if (Convert.ToInt32(dr["impLevel"]) == 0 || score.Name.ToLower() == playerName.ToLower()) { rank++; } } else { if (amount == 0) { break; } score = new PC(); score.UniqueID = Convert.ToInt32(dr["playerID"]); score.IsAnonymous = (bool)PC.GetField(score.UniqueID, "anonymous", score.IsAnonymous, null); if (devRequest) // devs get to see a list of everyone { score.TemporaryStorage = rank; // player ID is used to store the player's rank score = ConvertRowToScore(score, dr, devRequest); scoresList.Add(score); if (!score.IsAnonymous && score.ImpLevel == Globals.eImpLevel.USER) { amount--; } } else // only add the score to the list if they are not anonymous { score.TemporaryStorage = rank; score = ConvertRowToScore(score, dr, devRequest); scoresList.Add(score); amount--; } rank++; } } return(scoresList); } catch (Exception e) { Utils.LogException(e); return(null); } } }