public static string GetClassLimitStr(PlayerClass _Class) { var firstOrDefault = ClassLimitConverter.FirstOrDefault((_Value) => _Value.Value == _Class); if (firstOrDefault.Equals(default(KeyValuePair <string, PlayerClass>)) == false) { return(firstOrDefault.Key); } return(""); }
static CharacterData GenerateCharacterData_LVL60(PlayerRace _Race, PlayerClass _Class, PlayerSex _Sex) { CharacterData characterData = new CharacterData(""); characterData.Race = _Race; characterData.Class = _Class; characterData.Sex = _Sex; characterData.Level = 60; return(characterData); }
public Player[] _NotCached_FindPlayersMatching(string _PartOfName, WowRealm _Realm, string _Race, string _Class, string _Level, PlayersMatchingSortBy _SortBy) { int lowerLevel = int.MinValue; int upperLevel = int.MaxValue; if (_Level != "All") { try { string[] levelsStr = _Level.SplitVF("to"); if (levelsStr.Length >= 2) { lowerLevel = int.Parse(levelsStr[0]); upperLevel = int.Parse(levelsStr[1]); } } catch (Exception) { } } PlayerRace[] races = null; if (_Race != "All") { try { if (_Race == "Horde") { races = new PlayerRace[] { PlayerRace.Orc, PlayerRace.Undead, PlayerRace.Troll, PlayerRace.Tauren, PlayerRace.Blood_Elf } } ; else if (_Race == "Alliance") { races = new PlayerRace[] { PlayerRace.Human, PlayerRace.Night_Elf, PlayerRace.Gnome, PlayerRace.Dwarf, PlayerRace.Draenei } } ; else { PlayerRace currRace = StaticValues.ConvertRace(_Race); if (currRace != PlayerRace.Unknown) { races = new PlayerRace[] { currRace } } ; } } catch (Exception) { } } PlayerClass[] classes = null; if (_Class != "All") { var currClass = StaticValues.ConvertClass(_Class); if (currClass != PlayerClass.Unknown) { classes = new PlayerClass[] { currClass } } ; } List <Player> playerMatchList = new List <Player>(100000); foreach (var _RealmDB in DatabaseAccess.GetRealmDBs(this)) { if (_Realm != WowRealm.All && _Realm != _RealmDB.Key) { continue; } foreach (var player in _RealmDB.Value.Players) { if (races != null && races.Contains(player.Value.Character.Race) == false) { continue; } if (classes != null && classes.Contains(player.Value.Character.Class) == false) { continue; } if (player.Value.Character.Level < lowerLevel || player.Value.Character.Level > upperLevel) { continue; } if (player.Value.Character.Race == PlayerRace.Unknown || player.Value.Character.Class == PlayerClass.Unknown) { continue; } if (_PartOfName == "" || player.Key.ToLower().Contains(_PartOfName) == true) { playerMatchList.Add(player.Value); } } } if (_SortBy == PlayersMatchingSortBy.SortBy_NameSearch) { if (_PartOfName.Length >= 2) { string nameFormattedSearchStr = char.ToUpper(_PartOfName[0]) + _PartOfName.Substring(1).ToLower(); return(playerMatchList.OrderByDescending(_Player => { var sortValue = _Player.LastSeen; if (_Player.Name.StartsWith(nameFormattedSearchStr)) { sortValue = sortValue.AddYears(2); if (_Player.Name == nameFormattedSearchStr) { sortValue = sortValue.AddYears(10); } } return sortValue; }).ToArray()); } else { return(playerMatchList.OrderBy(_Player => _Player.Name).ToArray()); } } else if (_SortBy == PlayersMatchingSortBy.SortBy_Rank) { return(playerMatchList.OrderByDescending(_Player => _Player.GetRankTotal()).ToArray()); } else if (_SortBy == PlayersMatchingSortBy.SortBy_Name) { return(playerMatchList.OrderBy(_Player => _Player.Name).ToArray()); } else if (_SortBy == PlayersMatchingSortBy.SortBy_Guild) { return(playerMatchList.OrderBy(_Player => _Player.Guild.GuildName).ToArray()); } else if (_SortBy == PlayersMatchingSortBy.SortBy_Level) { return(playerMatchList.OrderByDescending(_Player => _Player.Character.Level).ToArray()); } else if (_SortBy == PlayersMatchingSortBy.SortBy_RaceClass) { return(playerMatchList.OrderBy(_Player => ((int)_Player.Character.Race) * 100 + (int)_Player.Character.Class).ToArray()); } else if (_SortBy == PlayersMatchingSortBy.SortBy_TotalHKs) { return(playerMatchList.OrderByDescending(_Player => _Player.Honor.LifetimeHK).ToArray()); } else if (_SortBy == PlayersMatchingSortBy.SortBy_Honor) { return(playerMatchList.OrderByDescending(_Player => _Player.Honor.LastWeekHonor).ToArray()); } else if (_SortBy == PlayersMatchingSortBy.SortBy_HKs) { return(playerMatchList.OrderByDescending(_Player => _Player.Honor.LastWeekHK).ToArray()); } else if (_SortBy == PlayersMatchingSortBy.SortBy_Server) { return(playerMatchList.OrderByDescending(_Player => _Player.Realm).ToArray()); } else if (_SortBy == PlayersMatchingSortBy.SortBy_Seen) { return(playerMatchList.OrderByDescending(_Player => _Player.LastSeen).ToArray()); } else { return(playerMatchList.ToArray()); } }
public Player[] FindPlayersMatching(string _PartOfName, string _Realm, string _Race, string _Class, string _Level, string _SortBy = "NameSearch") { //FIX PARAMS _PartOfName = _PartOfName.ToLower(); WowRealm realm = StaticValues.ConvertRealm(_Realm); if (realm == WowRealm.Unknown) { realm = WowRealm.All; } int lowerLevel = int.MinValue; int upperLevel = int.MaxValue; if (_Level != "All") { try { string[] levelsStr = _Level.SplitVF("to"); if (levelsStr.Length >= 2) { lowerLevel = int.Parse(levelsStr[0]); upperLevel = int.Parse(levelsStr[1]); } } catch (Exception) { } } if (lowerLevel < 1 || upperLevel > 60 || upperLevel < lowerLevel) { _Level = "All"; } else { _Level = lowerLevel + "to" + upperLevel; } PlayerRace[] races = null; if (_Race != "All") { try { if (_Race == "Horde") { races = new PlayerRace[] { PlayerRace.Orc, PlayerRace.Undead, PlayerRace.Troll, PlayerRace.Tauren, PlayerRace.Blood_Elf } } ; else if (_Race == "Alliance") { races = new PlayerRace[] { PlayerRace.Human, PlayerRace.Night_Elf, PlayerRace.Gnome, PlayerRace.Dwarf, PlayerRace.Draenei } } ; else { PlayerRace currRace = StaticValues.ConvertRace(_Race); if (currRace != PlayerRace.Unknown) { races = new PlayerRace[] { currRace }; _Race = currRace.ToString(); } } } catch (Exception) { } } if (races == null) { _Race = "All"; } PlayerClass[] classes = null; if (_Class != "All") { var currClass = StaticValues.ConvertClass(_Class); if (currClass != PlayerClass.Unknown) { classes = new PlayerClass[] { currClass }; _Class = currClass.ToString(); } } if (classes == null) { _Class = "All"; } PlayersMatchingSortBy sortBy = PlayersMatchingSortBy.SortBy_NameSearch; if (Enum.TryParse("SortBy_" + _SortBy, true, out sortBy) == false) { sortBy = PlayersMatchingSortBy.SortBy_NameSearch; } //FIX PARAMS if (_PartOfName.Length >= 3 || (_Race != "All" && _Class != "All")) { return(_NotCached_FindPlayersMatching(_PartOfName, realm, _Race, _Class, _Level, sortBy)); } else { return(Hidden.ApplicationInstance.Instance.m_ThreadSafeCache.Get("FindPlayersMatching", _NotCached_FindPlayersMatching, _PartOfName, realm, _Race, _Class, _Level, sortBy)); } }
public string CreateInventoryInfo(List <PlayerItemInfo> _Items, PlayerRace _Race, PlayerClass _Class, PlayerSex _Sex, WowRealm _Realm = WowRealm.All, WowVersionEnum _WowVersion = WowVersionEnum.Vanilla) { string invInfo = ""; string currentItemDatabase = DatabaseAccess.GetCurrentItemDatabaseAddress(); var itemSummaryDB = Hidden.ApplicationInstance.Instance.GetItemSummaryDatabase(); string modelEqString = ""; var itemIDs = _Items.Select((_Value) => _Value.ItemID); foreach (var item in _Items) { var itemInfo = DatabaseAccess.GetItemInfo(item.ItemID, _WowVersion); if (itemInfo == null) { invInfo += "<div class='equipment-slot' id='" + CharacterViewer.ItemSlotToIDConversion[item.Slot] + "'><div class='quality' id='epic'></div><img src='assets/img/icons/inv_misc_questionmark.png'/></div>"; } else { string currInvInfo = "<div class='equipment-slot' id='" + CharacterViewer.ItemSlotToIDConversion[item.Slot] + "'>" + "<img class='itempic' src='" + "http://realmplayers.com/" + itemInfo.GetIconImageAddress() + "'/>" + "<div class='quality' id='" + CharacterViewer.ItemQualityConversion[itemInfo.ItemQuality] + "'></div>" + "<img class='itemframe' src='assets/img/icons/ItemNormalFrame.png'/>" + CharacterViewer.GenerateItemLink(currentItemDatabase, item, _WowVersion, itemInfo.GenerateSetPcsStr(itemIDs)); if (item.Slot == ItemSlot.Head && ModelViewerOptions.HideHead == true) { } else { if ((_Class == VF_RealmPlayersDatabase.PlayerClass.Hunter && (item.Slot == ItemSlot.Main_Hand || item.Slot == ItemSlot.Off_Hand)) || (_Class != VF_RealmPlayersDatabase.PlayerClass.Hunter && item.Slot == ItemSlot.Ranged)) { } else { int modelViewerID = 0; int modelViewerSlot = 0; if (itemInfo.GetModelViewerIDAndSlot(item.Slot, out modelViewerID, out modelViewerSlot, true) == true) { if (item.Slot == ItemSlot.Off_Hand) { if (itemInfo.AjaxTooltip.Contains("Shield") == false) { modelViewerSlot = 22; } } if (modelViewerID != 0) { modelEqString = modelEqString + "," + modelViewerSlot + "," + modelViewerID; } } } } //List<Tuple<DateTime, string>> players = null; if (_Realm != WowRealm.All) { int usageCount = itemSummaryDB.GetItemUsageCount(_Realm, item); currInvInfo += "<a class='itemplayersframe' href='ItemUsageInfo.aspx?realm=" + StaticValues.ConvertRealmParam(_Realm) + "&item=" + item.ItemID + (item.SuffixID != 0 ? "&suffix=" + item.SuffixID : "") + "'>" + usageCount + "</a>"; } currInvInfo += "</div>"; invInfo += currInvInfo; } } invInfo += "<img style='position: absolute;z-index: 1; pointer-events: none;' src='assets/img/bg/CharacterBackgroundTransparent.png'></img>"; string modelViewerQuery = PageUtility.GetQueryString(Request, "modelviewer", "unknown").ToLower(); if (modelViewerQuery != "false" && modelEqString != "" && ModelViewerOptions.View3DModel == true) { if (modelEqString[0] == ',')//För att bli av med det första "," { modelEqString = modelEqString.Substring(1); } //modelEqString = "1,33743,3,33653,5,33650,6,31110,7,31115,8,31111,9,31127,10,33651,13,25629"; string modelCharString = ((_Race == VF_RealmPlayersDatabase.PlayerRace.Undead) ? "Scourge" : _Race.ToString().Replace("_", "")) + _Sex.ToString();// "orcmale"; invInfo += "<div style='z-index: 0; position: absolute; margin: 33px 77px; width:385px; height:512px;'><object type='application/x-shockwave-flash' data='http://wow.zamimg.com/modelviewer/ZAMviewerfp11.swf' width='385' height='512' id='dsjkgbdsg2346' style='visibility: visible;'>" + "<param name='quality' value='low'>" + "<param name='allowscriptaccess' value='always'>" + "<param name='allowfullscreen' value='false'>" + "<param name='menu' value='false'>" + "<param name='bgcolor' value='#181818'>" + "<param name='wmode' value='direct'>" + "<param name='flashvars' value='hd=false&model=" + modelCharString + "&modelType=16&contentPath=http://wow.zamimg.com/modelviewer/&equipList=" + modelEqString + "'>" + "</object></div>"; } else { invInfo += "<img class='characterimage' src='" + StaticValues.GetRaceCrestImageUrl(_Race) + "'></img>"; } Hidden.ApplicationInstance.Instance.BackupItemInfos(); return(invInfo); }
protected void Page_Load(object sender, EventArgs e) { string dataStr = PageUtility.GetQueryString(Request, "data"); string charStr = PageUtility.GetQueryString(Request, "char"); string itemsStr = PageUtility.GetQueryString(Request, "items"); WowRealm realm = PageUtility.GetQueryRealm(Request); if (realm == WowRealm.Unknown) { realm = WowRealm.All; } var wowVersion = PageUtility.GetQueryWowVersion(Request); if (PageUtility.GetQueryString(Request, "generateShortURL") != "null") { var fullURL = "http://realmplayers.com/CharacterDesigner.aspx?char=" + charStr + "&items=" + itemsStr; string shortURL = ""; if (g_CachedShortURLs.TryGetValue(fullURL, out shortURL) == false) { shortURL = VF.URLShortener.CreateShortURL(fullURL); if (shortURL == "") { Response.Redirect(PageUtility.CreateUrlWithNewQueryValue(Request, "generateShortURL", "null")); } g_CachedShortURLs.TryAdd(fullURL, shortURL); g_CachedShortURLs.TryAdd(shortURL, fullURL); } //if (Request.Url.Host == "localhost") // Response.Redirect("localhost:4633/CharacterDesigner.aspx?char=" + charStr + "&items=" + itemsStr); //else Response.Redirect("CharacterDesigner.aspx?data=" + shortURL.Substring(shortURL.LastIndexOf("/") + 1)); } if (dataStr == "null" && itemsStr == "null") { return; } if (dataStr != "null" && itemsStr == "null") { try { string fullURL = ""; if (g_CachedShortURLs.TryGetValue("http://goo.gl/" + dataStr, out fullURL) == false) { fullURL = VF.URLShortener.GetFullURL("http://goo.gl/" + dataStr); if (fullURL == "") { return; } g_CachedShortURLs.TryAdd("http://goo.gl/" + dataStr, fullURL); } var url = new Uri(fullURL); var queryString = System.Web.HttpUtility.ParseQueryString(url.Query); itemsStr = queryString.Get("items"); if (itemsStr == null) { return; } var tempcharStr = queryString.Get("char"); if (tempcharStr != null) { charStr = tempcharStr; } } catch (Exception) { return; } } m_BreadCrumbHTML = new MvcHtmlString(PageUtility.BreadCrumb_AddFinish("Character Designer")); List <PlayerItemInfo> itemsList = new List <PlayerItemInfo>(); var itemsStrSplit = itemsStr.Split(',', '+', ' '); Func <PlayerItemInfo, PlayerItemInfo, bool> slotEqualFunc = (_Value1, _Value2) => _Value1.Slot == _Value2.Slot; foreach (string itemLink in itemsStrSplit) { try { itemsList.AddUnique(new PlayerItemInfo(itemLink, wowVersion), slotEqualFunc); } catch (Exception) { try { var splittedLink = itemLink.Split(':', 'x'); if (splittedLink.Length > 1) { PlayerItemInfo itemInfo = new PlayerItemInfo("1:0:0:0:0:0:0:0:0", wowVersion); if (Enum.TryParse(splittedLink[0], true, out itemInfo.Slot) == false) { itemInfo.Slot = (ItemSlot)int.Parse(splittedLink[0]); } itemInfo.ItemID = int.Parse(splittedLink[1]); if (splittedLink.Length > 2) { itemInfo.EnchantID = int.Parse(splittedLink[2]); } if (splittedLink.Length > 3) { itemInfo.SuffixID = int.Parse(splittedLink[3]); } if (splittedLink.Length > 4) { itemInfo.UniqueID = int.Parse(splittedLink[4]); } if (splittedLink.Length > 5 && wowVersion == WowVersionEnum.TBC) { itemInfo.GemIDs = new int[4]; itemInfo.GemIDs[0] = int.Parse(splittedLink[5]); itemInfo.GemIDs[1] = 0; itemInfo.GemIDs[2] = 0; itemInfo.GemIDs[3] = 0; if (splittedLink.Length > 6) { itemInfo.GemIDs[1] = int.Parse(splittedLink[6]); } if (splittedLink.Length > 7) { itemInfo.GemIDs[2] = int.Parse(splittedLink[7]); } if (splittedLink.Length > 8) { itemInfo.GemIDs[3] = int.Parse(splittedLink[8]); } } itemsList.AddUnique(itemInfo, slotEqualFunc); } } catch (Exception) {} } } PlayerRace playerRace = PlayerRace.Orc; PlayerClass playerClass = PlayerClass.Warrior; PlayerSex playerSex = PlayerSex.Male; if (charStr != "null") { try { var charStrSplit = charStr.Split(',', '+', ' '); if (charStrSplit.Length > 0) { if (Enum.TryParse(charStrSplit[0], true, out playerRace) == false) { playerRace = (PlayerRace)int.Parse(charStrSplit[0]); } } if (charStrSplit.Length > 1) { if (Enum.TryParse(charStrSplit[1], true, out playerClass) == false) { playerClass = (PlayerClass)int.Parse(charStrSplit[1]); } } if (charStrSplit.Length > 2) { if (Enum.TryParse(charStrSplit[2], true, out playerSex) == false) { playerSex = (PlayerSex)int.Parse(charStrSplit[2]); } } } catch (Exception) {} } if (playerRace == PlayerRace.Unknown) { playerRace = PlayerRace.Orc; } if (playerClass == PlayerClass.Unknown) { playerClass = PlayerClass.Warrior; } if (playerSex == PlayerSex.Unknown) { playerSex = PlayerSex.Male; } m_InventoryInfoHTML = new MvcHtmlString(CreateInventoryInfo(itemsList, playerRace, playerClass, playerSex, realm, wowVersion)); GenerateGearStats(itemsList, wowVersion); if (dataStr != "null") { m_CharacterDesignerInfo = new MvcHtmlString("Short link for this Character: <br /><a href='http://realmplayers.com/vchar/" + dataStr + ".aspx'>http://realmplayers.com/vchar/" + dataStr + ".aspx</a> or <a href='http://goo.gl/" + dataStr + "'>http://goo.gl/" + dataStr + "</a>"); } else { m_CharacterDesignerInfo = new MvcHtmlString("<a href='" + PageUtility.CreateUrlWithNewQueryValue(Request, "generateShortURL", "true") + "'>Click here to create a short link for this Character</a>"); } if (IsPostBack == false) { foreach (var item in itemsList) { int gemIDcount = item.GetGemIDCount(); string itemStr = item.ItemID.ToString(); if (item.EnchantID != 0 || item.SuffixID != 0 || item.UniqueID != 0 || gemIDcount != 0) { itemStr += "x" + item.EnchantID.ToString(); if (item.SuffixID != 0 || item.UniqueID != 0 || gemIDcount != 0) { itemStr += "x" + item.SuffixID.ToString(); } if (item.UniqueID != 0 || gemIDcount != 0) { itemStr += "x" + item.UniqueID.ToString(); } if (gemIDcount != 0) { for (int i = 0; i < gemIDcount; ++i) { itemStr += "x" + item.GemIDs[i].ToString(); } } } switch (item.Slot) { case ItemSlot.Head: txtHeadSlot.Text = itemStr; break; case ItemSlot.Neck: txtNeckSlot.Text = itemStr; break; case ItemSlot.Shoulder: txtShoulderSlot.Text = itemStr; break; case ItemSlot.Shirt: txtShirtSlot.Text = itemStr; break; case ItemSlot.Chest: txtChestSlot.Text = itemStr; break; case ItemSlot.Belt: txtBeltSlot.Text = itemStr; break; case ItemSlot.Legs: txtLegsSlot.Text = itemStr; break; case ItemSlot.Feet: txtFeetSlot.Text = itemStr; break; case ItemSlot.Wrist: txtWristSlot.Text = itemStr; break; case ItemSlot.Gloves: txtGlovesSlot.Text = itemStr; break; case ItemSlot.Finger_1: txtRing1Slot.Text = itemStr; break; case ItemSlot.Finger_2: txtRing2Slot.Text = itemStr; break; case ItemSlot.Trinket_1: txtTrinket1Slot.Text = itemStr; break; case ItemSlot.Trinket_2: txtTrinket2Slot.Text = itemStr; break; case ItemSlot.Back: txtBackSlot.Text = itemStr; break; case ItemSlot.Main_Hand: txtMainhandSlot.Text = itemStr; break; case ItemSlot.Off_Hand: txtOffhandSlot.Text = itemStr; break; case ItemSlot.Ranged: txtRangedSlot.Text = itemStr; break; case ItemSlot.Tabard: txtTabardSlot.Text = itemStr; break; default: break; } } ddlRace.SelectedValue = playerRace.ToString(); if (StaticValues.GetFaction(playerRace) == VF_RealmPlayersDatabase.PlayerFaction.Horde) { ddlRace.Style.Add("color", "#ff4546"); } else { ddlRace.Style.Add("color", "#45a3ff"); } ddlClass.SelectedValue = playerClass.ToString(); ddlClass.Style.Add("color", PageUtility.GetClassColor(playerClass)); ddlSex.SelectedValue = playerSex.ToString(); } }
public static string CreateColorString(string _String, VF_RealmPlayersDatabase.PlayerClass _Class) { return("<font color='" + GetClassColor(_Class) + "'>" + _String + "</font>"); }