$item_search_cache = array(); while ($result_pls_gm = mysql_fetch_assoc($doquery_pls_gm)) { $item_search_cache[$result_pls_gm["item_id"]] = $result_pls_gm; $Items[] = array($result_pls_gm["item_id"], $result_pls_gm["item_name"], $result_pls_gm["item_level"], $result_pls_gm["item_source"], $result_pls_gm["item_relevance"]); } switchConnection("mangos", REALM_NAME); if ($config["locales"]) { $ItemsQuery = execute_query("SELECT `entry` FROM `locales_item` WHERE `name_loc" . $config["locales"] . "` LIKE '%" . change_whitespace($SearchQuery) . "%'"); } else { $ItemsQuery = execute_query("SELECT `entry` FROM `item_template` WHERE `name` LIKE '%" . change_whitespace($SearchQuery) . "%'"); } $TotalItems = mysql_num_rows($ItemsQuery); if ($TotalItems > $TotalCachedItems) { while ($ItemInfo = mysql_fetch_assoc($ItemsQuery)) { if (!isset($item_search_cache[$ItemInfo["entry"]])) { $item_search_cache[$ItemInfo["entry"]] = cache_item_search($ItemInfo["entry"]); $Items[] = array($ItemInfo["entry"], $item_search_cache[$ItemInfo["entry"]]["item_name"], $item_search_cache[$ItemInfo["entry"]]["item_level"], $item_search_cache[$ItemInfo["entry"]]["item_source"], $item_search_cache[$ItemInfo["entry"]]["item_relevance"]); } } } unset($item_search_cache); if ($TotalItems) { $Orders = array("ItemName", "ItemLevel", "Source", "Relevance"); $OrderOppositeSort = array(); $OrderSymbol = array(); $OrderSuffix = array(); foreach ($Orders as $Val) { $OrderOppositeSort[$Val] = "DESC"; $OrderSymbol[$Val] = ""; $OrderSuffix[$Val] = ""; }
function outputTooltip($itemid, $itemguid = 0, $itemlist = array()) { global $inventorytype, $ItemFlags, $config, $defines, $lang; /* Item Tooltip Output Function */ /* Get Item Info */ switchConnection("mangos", REALM_NAME); $tooltipText = ""; $itemtable = ""; if ($config["locales"]) { $itemdata = mysql_fetch_assoc(execute_query("SELECT * FROM `item_template` LEFT JOIN `locales_item` ON `item_template`.`entry` = `locales_item`.`entry` where `item_template`.`entry` = " . $itemid . " LIMIT 1")); $nameloc = "name_loc" . $config["locales"]; $descriptionloc = "description_loc" . $config["locales"]; if ($itemdata[$nameloc]) { $itemdata["name"] = $itemdata[$nameloc]; } if ($itemdata[$descriptionloc]) { $itemdata["description"] = $itemdata[$descriptionloc]; } } else { $itemdata = mysql_fetch_assoc(execute_query("SELECT * FROM `item_template` WHERE `entry` = " . $itemid . " LIMIT 1")); } $tooltipText .= "<table class=\"item-tooltip-table\" cellpadding=\"0\">"; $itemtable .= "<div class=\"myTable\">"; /* get character item specific information */ if ($itemguid) { switchConnection("characters", REALM_NAME); $enchantmentsData = explode(" ", mysql_result(execute_query("SELECT `data` FROM `item_instance` WHERE `guid` = " . $itemguid . " LIMIT 1"), 0)); } /* Random Enchantment PART 1*/ $ItemRandomName = ""; if ($itemguid && ($itemdata["RandomProperty"] || $itemdata["RandomSuffix"])) { $FirstEnchant = $defines["RANDOM_1"][CLIENT]; if ($itemdata["RandomProperty"]) { $FirstEnchant += 6; $RandomEnchantTable = "dbc_itemrandomproperties"; } else { // if($itemdata["RandomSuffix"]) $RandomEnchantTable = "dbc_itemrandomsuffix"; } switchConnection("armory", REALM_NAME); $ItemRandomData = mysql_fetch_assoc(execute_query("SELECT * FROM `" . $RandomEnchantTable . "`\r\n\t\t\tWHERE `ref_spellitemenchantment_1` = " . $enchantmentsData[$FirstEnchant] . " AND `ref_spellitemenchantment_2` = " . $enchantmentsData[$FirstEnchant + 3] . " AND `ref_spellitemenchantment_3` = " . $enchantmentsData[$FirstEnchant + 6] . " LIMIT 1")); $ItemRandomName = $ItemRandomData["name"]; } /* Item Quality */ switch ($itemdata["Quality"]) { case 0: $itemQuality = "gray"; break; case 1: $itemQuality = "white"; break; case 2: $itemQuality = "green"; break; case 3: $itemQuality = "blue"; break; case 4: $itemQuality = "purple"; break; case 5: $itemQuality = "orange"; break; case 6: $itemQuality = "gold"; break; /* 7 */ /* 7 */ default: $itemQuality = "red"; } $tooltipText .= tooltip_addsinglerow("<span class=\"item-quality-" . $itemQuality . "\">" . $itemdata["name"] . " " . $ItemRandomName . "</span>", "item-text-name"); $itemtable .= "<span class=\"my" . ucfirst($itemQuality) . " myBold myItemName\"><span class=\"\">" . $itemdata["name"] . "</span><span class=\"\"> </span></span>"; /* Item Binding */ switch ($itemdata["bonding"]) { case 1: $itemBinding = $lang["binds_when_pickup"]; break; case 2: $itemBinding = $lang["binds_when_equipped"]; break; case 3: $itemBinding = $lang["binds_when_used"]; break; case 4: $itemBinding = $lang["quest_item"]; break; default: $itemBinding = ""; } if ($itemBinding) { $tooltipText .= tooltip_addsinglerow($itemBinding); $itemtable .= "<br />" . $itemBinding; } /* Unique Status */ if ($itemdata["Flags"]) { $count = 0; $UniqueString = ""; foreach ($ItemFlags as $key => $value) { if ($itemdata["Flags"] & $key) { $count = 1; if ($value) { $UniqueString = $value; } } } if ($UniqueString && $count) { $tooltipText .= tooltip_addsinglerow($UniqueString); $itemtable .= "<br />" . $UniqueString; } else { if ($config["ShowError"] && !$count) { $tooltipText .= tooltip_addsinglerow("<span class=\"error\">" . $lang["error"] . ": " . $lang["unknown"] . " Flags " . $itemdata["Flags"] . ", " . $lang["report_to_gm"] . "</span>"); $itemtable .= "<br /><span class=\"error\">" . $lang["error"] . ": " . $lang["unknown"] . " Flags " . $itemdata["Flags"] . ", " . $lang["report_to_gm"] . "</span>"; } } } $greenStats = array(); /* Item Type */ if ($itemdata["InventoryType"]) { switchConnection("armory", REALM_NAME); $itemClassRight = mysql_result(execute_query("SELECT `name` FROM `dbc_itemsubclass` WHERE `ref_itemclass` = " . $itemdata["class"] . " AND `id` = " . $itemdata["subclass"]), 0); if ($itemdata["InventoryType"] == 18) { $itemClassLeft = $itemdata["ContainerSlots"] . " " . $lang["slot"] . " " . $itemClassRight; $tooltipText .= tooltip_addsinglerow($itemClassLeft); $itemtable .= "<br />" . $itemClassLeft; } else { $itemClassLeft = $inventorytype[$itemdata["InventoryType"]]; $tooltipText .= tooltip_adddoublerow($itemClassLeft, $itemClassRight); $itemtable .= "<br /><span class=\"tooltipRight\">" . $itemClassRight . "</span>" . $itemClassLeft; } /* Damage */ $itemIsWeapon = 0; $minDamage = 0; $totalMinDamage = 0; $maxDamage = 0; $totalMaxDamage = 0; /* Loop through item data to check if any of the dmg_min and dmg_max fields are set and handle output as such */ $dmg_max_index = CLIENT >= 2 ? 2 : 5; for ($i = 1; $i <= $dmg_max_index; $i++) { if ($itemdata["dmg_min" . $i]) { $itemIsWeapon = 1; $thisDelay = round($itemdata["delay"] / 1000, 2); $minDamage = $itemdata["dmg_min" . $i]; $totalMinDamage += $minDamage; $maxDamage = $itemdata["dmg_max" . $i]; $totalMaxDamage += $maxDamage; $itemDamageType = " "; switch ($itemdata["dmg_type" . $i]) { case 0: $itemDamageType = ""; break; case 1: $itemDamageType .= $lang["holy"]; break; case 2: $itemDamageType .= $lang["fire"]; break; case 3: $itemDamageType .= $lang["nature"]; break; case 4: $itemDamageType .= $lang["frost"]; break; case 5: $itemDamageType .= $lang["shadow"]; break; case 6: $itemDamageType .= $lang["arcane"]; break; default: $itemDamageType .= $lang["unknown"] . ": " . $itemdata["dmg_type" . $i]; } $itemDamageType .= " "; if ($i == 1) { $tooltipText .= tooltip_addsinglerow($minDamage . "-" . $maxDamage . $itemDamageType . $lang["dmg"]); $itemtable .= "<br /><span class=\"\">" . $minDamage . "-" . $maxDamage . "</span><span class=\"\">" . $itemDamageType . "</span><span class=\"\">" . $lang["dmg"] . "</span>"; } else { $tooltipText .= tooltip_addsinglerow("+" . $minDamage . "-" . $maxDamage . $itemDamageType . $lang["damage"]); $itemtable .= "<br /><span class=\"\">+" . $minDamage . "-" . $maxDamage . "</span><span class=\"\">" . $itemDamageType . "</span><span class=\"\">" . $lang["damage"] . "</span>"; } } } if ($itemIsWeapon) { /* Convert delay to string to get .0 if it's not there */ $thisDelayString = explode(".", $thisDelay); if (count($thisDelayString) == 1) { $thisDelay = $thisDelayString[0] . ".00"; } else { if (count($thisDelayString) == 2 and strlen($thisDelayString[1]) == 1) { $thisDelay . "0"; } } /* Calculate DPS */ $itemAverageDamage = ($totalMinDamage + $totalMaxDamage) / 2; $itemDamagePerSecond = round($itemAverageDamage / $thisDelay, 1); /* Convert to string to get .0 if it's not there */ $itemDPSString = explode(".", $itemDamagePerSecond); if (count($itemDPSString) == 1) { $itemDamagePerSecond .= ".0"; } $tooltipText .= tooltip_adddoublerow("(" . $itemDamagePerSecond . " " . $lang["damage_per_sec"] . ")", $lang["speed"] . " " . $thisDelay); $itemtable .= "<br /><span class=\"tooltipRight\">" . $lang["speed"] . " " . $thisDelay . "</span>(<span class=\"\">" . $itemDamagePerSecond . " </span><span class=\"\">" . $lang["damage_per_sec"] . "</span>)"; } /* Armor Value */ if ($itemdata["armor"]) { $tooltipText .= tooltip_addsinglerow($itemdata["armor"] . " " . $lang["armor"]); $itemtable .= "<br /><span class=\"\"><span class=\"\">" . $itemdata["armor"] . "</span><span class=\"\"> " . $lang["armor"] . "</span></span>"; } /* Shield Block */ if ($itemdata["block"]) { $tooltipText .= tooltip_addsinglerow($itemdata["block"] . " " . $lang["block"]); $itemtable .= "<br /><span class=\"\"><span class=\"\">" . $itemdata["block"] . "</span><span class=\"\"> " . $lang["block"] . "</span></span>"; } /* Statistics */ $isGreenStat = 0; for ($i = 1; $i <= 10; $i++) { if ($itemdata["stat_type" . $i]) { /* Confirmed stat */ $statType = $itemdata["stat_type" . $i]; $statVal = $itemdata["stat_value" . $i]; $isGreenStat = 0; $statInfo = getStatType($statType, $statVal); if (strstr($statInfo, "[GREEN]")) { $isGreenStat = 1; $greenStats[] = str_replace("[GREEN]", "", $statInfo); } else { $tooltipText .= tooltip_addsinglerow($statInfo); $itemtable .= "<br /><span class=\"\"><span class=\"\">" . $statInfo . " </span></span>"; } } else { break; } } /* More on $greenStats after Required Level line */ /* Resistances */ $resistances = array("arcane", "fire", "nature", "frost", "shadow"); foreach ($resistances as $resistance) { if ($itemdata[$resistance . "_res"]) { $tooltipText .= tooltip_addsinglerow("+" . $itemdata[$resistance . "_res"] . " " . ucfirst($resistance) . " " . $lang["resistance"]); $itemtable .= "<br /><span class=\"\"><span class=\"\">+" . $itemdata[$resistance . "_res"] . " " . ucfirst($resistance) . " " . $lang["resistance"] . "</span></span>"; } } /* Enchantment */ if ($itemguid) { if ($enchantmentsData[$defines["PERMANENT"][CLIENT]]) { $tooltipText .= tooltip_addsinglerow("<span class=\"item-greenstat\">" . GetNameFromDB($enchantmentsData[$defines["PERMANENT"][CLIENT]], "dbc_spellitemenchantment") . "</span>"); } } /* Random Enchantment PART 2 */ if ($itemdata["RandomProperty"] || $itemdata["RandomSuffix"]) { if ($itemguid) { $RandomEnchantment = ""; $enchvalueindex = 0; for ($i = $FirstEnchant; $i <= $FirstEnchant + 2 * 3; $i += 3) { $enchvalueindex++; if ($enchantmentsData[$i]) { $RandomEnchantment = GetNameFromDB($enchantmentsData[$i], "dbc_spellitemenchantment"); if ($itemdata["RandomSuffix"]) { $suffixFactor = GenerateEnchSuffixFactor($itemdata["ItemLevel"], $itemdata["InventoryType"], $itemdata["Quality"]); $enchantvalue = round($suffixFactor * ($ItemRandomData["enchvalue_" . $enchvalueindex] / 10000)); $RandomEnchantment = str_replace("\$i", $enchantvalue, $RandomEnchantment); } $tooltipText .= tooltip_addsinglerow($RandomEnchantment); } } } else { $tooltipText .= tooltip_addsinglerow("<span class=\"item-greenstat\"><" . $lang["random_enchantment"] . "></span>"); } $itemtable .= "<br /><span class=\"bonusGreen\"><" . $lang["random_enchantment"] . "></span>"; } /* Sockets */ $prismatic_already = 0; for ($i = 1; $i <= 3; $i++) { $socketexist = 0; if ($itemdata["socketColor_" . $i]) { switch ($itemdata["socketColor_" . $i]) { case 1: $sockcol = "Meta"; $sockname = $lang["meta"]; break; case 2: $sockcol = "Red"; $sockname = $lang["red"]; break; case 4: $sockcol = "Yellow"; $sockname = $lang["yellow"]; break; case 8: $sockcol = "Blue"; $sockname = $lang["blue"]; break; default: $sockcol = "Unk"; $sockname = $lang["unk"]; } $socketexist = 1; } else { if (!$prismatic_already && $itemguid && CLIENT && $enchantmentsData[$defines["PRISMATIC_SOCKET"][CLIENT]]) { //prismatic socket $sockcol = "Prismatic"; $sockname = $lang["prismatic"]; $prismatic_already = 1; $socketexist = 1; } } if ($socketexist) { $socketName = $sockname . " " . $lang["socket"]; $socketIcon = "shared/global/tooltip/images/icons/Socket_" . $sockcol . ".png"; $socketColor = "setItemGray"; if ($itemguid) { $socket_offset = $defines["SOCKET_1"][CLIENT] + ($i - 1) * 3; if ($enchantmentsData[$socket_offset]) { switchConnection("armory", REALM_NAME); $GemInfo = mysql_fetch_assoc(execute_query("SELECT `name`, `gemid` FROM `dbc_spellitemenchantment` WHERE `id` = " . $enchantmentsData[$socket_offset] . " LIMIT 1")); $socketName = $GemInfo["name"]; switchConnection("mangos", REALM_NAME); $socketIcon = GetIcon("item", mysql_result(execute_query("SELECT `displayid` FROM `item_template` WHERE `entry` = " . $GemInfo["gemid"] . " LIMIT 1"), 0)); $socketColor = "setItemYellow"; } } $tooltipText .= tooltip_addsinglerow("<img class=\"socketImg\" src=\"" . $socketIcon . "\">" . $socketName, $socketColor); $itemtable .= "<br /><span class=\"" . $socketColor . "\"><img class=\"socketImg\" src=\"" . $socketIcon . "\">" . $socketName . "</span>"; } } //socket Bonus if ($itemdata["socketBonus"]) { if (!($SocketBonus = GetNameFromDB($itemdata["socketBonus"], "dbc_spellitemenchantment")) && $config["ShowError"]) { $tooltipText .= tooltip_addsinglerow("<span class=\"error\">" . $lang["error"] . ": " . $lang["unknown"] . " socketBonus " . $itemdata["socketBonus"] . ", " . $lang["report_to_gm"] . "</span>"); $itemtable .= "<br /><span class=\"error\">" . $lang["error"] . ": " . $lang["unknown"] . " socketBonus " . $itemdata["socketBonus"] . ", " . $lang["report_to_gm"] . "</span>"; } else { $socketBonusColor = "setItemGray"; if ($itemguid) { if ($enchantmentsData[$defines["SOCKET_BONUS"][CLIENT]]) { $socketBonusColor = "setItemYellow"; } } $tooltipText .= tooltip_addsinglerow($lang["socket_bonus"] . ": " . $SocketBonus, $socketBonusColor); $itemtable .= "<br /><span class=\"" . $socketBonusColor . "\">" . $lang["socket_bonus"] . ": " . $SocketBonus . "</span>"; } } /* Durability */ if ($itemdata["MaxDurability"]) { if ($itemguid) { $tooltipText .= tooltip_addsinglerow($lang["durability"] . ": " . $enchantmentsData[$defines["DURABILITY"][CLIENT]] . " / " . $enchantmentsData[$defines["MAX_DURABILITY"][CLIENT]]); } else { $tooltipText .= tooltip_addsinglerow($lang["durability"] . ": " . $itemdata["MaxDurability"] . " / " . $itemdata["MaxDurability"]); } $itemtable .= "<br />" . $lang["durability"] . ": " . $itemdata["MaxDurability"] . " / " . $itemdata["MaxDurability"]; } } //Requires Class $allowclass = $itemdata["AllowableClass"]; if ($allowclass != -1 && ($allowclass & 1535) != 1535) { $ClassesString = ShowAllowable($allowclass, "dbc_chrclasses"); if ($ClassesString) { $tooltipText .= tooltip_addsinglerow($lang["classes"] . ":" . $ClassesString); $itemtable .= "<br />" . $lang["classes"] . ":" . $ClassesString; } else { if ($config["ShowError"]) { $tooltipText .= tooltip_addsinglerow("<span class=\"error\">" . $lang["error"] . ": " . $lang["unknown"] . " AllowableClass " . $itemdata["AllowableClass"] . ", " . $lang["report_to_gm"] . "</span>"); $itemtable .= "<br /><span class=\"error\">" . $lang["error"] . ": " . $lang["unknown"] . " AllowableClass " . $itemdata["AllowableClass"] . ", " . $lang["report_to_gm"] . "</span>"; } } } //Requires Race $allowrace = $itemdata["AllowableRace"]; if ($allowrace != -1 && ($allowrace & 1791) != 1791) { $RacesString = ShowAllowable($allowrace, "dbc_chrraces"); if ($RacesString) { $tooltipText .= tooltip_addsinglerow($lang["races"] . ":" . $RacesString); $itemtable .= "<br />" . $lang["races"] . ":" . $RacesString; } else { if ($config["ShowError"]) { $tooltipText .= tooltip_addsinglerow("<span class=\"error\">>" . $lang["error"] . ": " . $lang["unknown"] . " AllowableRace " . $itemdata["AllowableRace"] . ", " . $lang["report_to_gm"] . "</span>"); $itemtable .= "<br /><span class=\"error\">>" . $lang["error"] . ": " . $lang["unknown"] . " AllowableRace " . $itemdata["AllowableRace"] . ", " . $lang["report_to_gm"] . "</span>"; } } } // Requires Level if ($itemdata["RequiredLevel"]) { $tooltipText .= tooltip_addsinglerow($lang["requires_level"] . " " . $itemdata["RequiredLevel"]); $itemtable .= "<br />" . $lang["requires_level"] . " " . $itemdata["RequiredLevel"]; } /* Required Skill (riding, blacksmithing..) */ if ($itemdata["RequiredSkill"]) { $requiredSkill = GetNameFromDB($itemdata["RequiredSkill"], "dbc_skillline"); if ($requiredSkill) { $tooltipText .= tooltip_addsinglerow($lang["requires"] . " " . $requiredSkill . " " . $itemdata["RequiredSkillRank"]); $itemtable .= "<br /><span class=\"\">" . $lang["requires"] . " </span><span class=\"\">" . $requiredSkill . " </span><span class=\"\"></span><span class=\"\">" . $itemdata["RequiredSkillRank"] . "</span><span class=\"\"></span>"; } else { if ($config["ShowError"]) { $tooltipText .= tooltip_addsinglerow("<span class=\"error\">" . $lang["error"] . ": " . $lang["unknown"] . " RequiredSkill " . $itemdata["RequiredSkill"] . ", " . $lang["report_to_gm"] . "</span>"); $itemtable .= "<br /><span class=\"error\">" . $lang["error"] . ": " . $lang["unknown"] . " RequiredSkill " . $itemdata["RequiredSkill"] . ", " . $lang["report_to_gm"] . "</span>"; } } } // Required Spell if ($itemdata["requiredspell"]) { $requiredSpell = GetNameFromDB($itemdata["requiredspell"], "dbc_spell"); if ($requiredSpell) { $tooltipText .= tooltip_addsinglerow($lang["requires"] . " " . $requiredSpell); $itemtable .= "<br /><span class=\"\">" . $lang["requires"] . " </span><span class=\"\">" . $requiredSpell . "</span><span class=\"\"></span>"; } else { if ($config["ShowError"]) { $tooltipText .= tooltip_addsinglerow("<span class=\"error\">" . $lang["error"] . ": " . $lang["unknown"] . " requiredspell " . $itemdata["requiredspell"] . ", " . $lang["report_to_gm"] . "</span>"); $itemtable .= "<br /><span class=\"error\">" . $lang["error"] . ": " . $lang["unknown"] . " requiredspell " . $itemdata["requiredspell"] . ", " . $lang["report_to_gm"] . "</span>"; } } } // Green Statistics if (count($greenStats)) { foreach ($greenStats as $key => $val) { $tooltipText .= tooltip_addsinglerow("<span class=\"item-greenstat\">" . $val . "</span>"); $itemtable .= "<br /><span class=\"bonusGreen\">" . $val . "</span>"; } } // Spell Data $showspelldata = 1; for ($i = 1; $i <= 5; $i++) { if ($itemdata["spelltrigger_" . $i] == 6) { $showspelldata = 0; } } if ($showspelldata) { for ($i = 1; $i <= 5; $i++) { if ($itemdata["spellid_" . $i]) { switch ($itemdata["spelltrigger_" . $i]) { case 0: $spellTrigger = $lang["use"]; break; case 1: $spellTrigger = $lang["equip"]; break; case 2: $spellTrigger = $lang["hit_chance"]; break; default: $spellTrigger = $lang["unknown_trigger"] . " " . $itemdata["spelltrigger_" . $i]; } switchConnection("armory", REALM_NAME); $spellDescription = spell_parsedata(mysql_fetch_assoc(execute_query("SELECT * FROM `dbc_spell` WHERE `id` = " . $itemdata["spellid_" . $i] . " LIMIT 1"))); if ($spellDescription) { $tooltipText .= tooltip_addsinglerow("<span class=\"item-greenstat\">" . $spellTrigger . ": " . $spellDescription . "</span>"); $itemtable .= "<br /><span class=\"bonusGreen\">" . $spellTrigger . ": " . $spellDescription . "</span>"; } } } } /* Item Set Data */ if ($itemdata["itemset"]) { /* Get Set Name */ switchConnection("armory", REALM_NAME); $setData = mysql_fetch_assoc(execute_query("SELECT * FROM `dbc_itemset` WHERE `id` = " . $itemdata["itemset"] . " LIMIT 1")); $setName = $setData["name"]; for ($i = 1; $i <= 8; $i++) { $setItemsIds[] = $setData["item_" . $i]; } /* Get Items in set */ switchConnection("mangos", REALM_NAME); $setItemsQuery = "SELECT `entry`, `name` FROM `item_template` WHERE "; $nameloc = "name_loc" . $config["locales"]; if ($config["locales"]) { $setItemsQuery = "SELECT item_template.`entry`, `name`, `" . $nameloc . "` FROM `item_template` LEFT JOIN `locales_item` ON `item_template`.`entry` = `locales_item`.`entry` WHERE "; } else { $setItemsQuery = "SELECT `entry`, `name` FROM `item_template` WHERE "; } if (in_array($itemid, $setItemsIds)) { $setItemsQuery .= "`item_template`.`entry` IN ("; foreach ($setItemsIds as $value) { $setItemsQuery .= $value . ","; } $setItemsQuery .= "0)"; } else { // Hack for gladiator sets $setItemsQuery .= "`itemset` = " . $itemdata["itemset"] . " AND `ItemLevel` = " . $itemdata["ItemLevel"] . " AND `Quality` = " . $itemdata["Quality"]; } $setItemsQueryexecute = execute_query($setItemsQuery); $owned_count = 0; while ($setItemData = mysql_fetch_assoc($setItemsQueryexecute)) { if (!empty($setItemData[$nameloc])) { $setItemData["name"] = $setItemData[$nameloc]; } $setItems[$setItemData["entry"]] = $setItemData["name"]; if (in_array($setItemData["entry"], $itemlist)) { $owned_count++; } } $tooltipText .= tooltip_addsinglerow("<br />" . $setName . " (" . $owned_count . "/" . count($setItems) . ")", "item-set-name"); $itemtable .= "<br /><br /><span class=\"setNameYellow\">" . $setName . " (" . $owned_count . "/" . count($setItems) . ")</span><div class=\"setItemIndent\">"; /* Output items in set */ foreach ($setItems as $itemID => $itemName) { if (in_array($itemID, $itemlist)) { $tooltipText .= tooltip_addsinglerow($itemName, "item-set-item-acquired"); } else { $tooltipText .= tooltip_addsinglerow($itemName, "item-set-item-unacquired"); } // Player does not have this item $itemtable .= "<br /><span class=\"setItemGray\">" . $itemName . "</span>"; } $tooltipText .= tooltip_addsinglerow("<br />"); $itemtable .= "</div><br />"; for ($i = 1; $i <= 8; $i++) { if ($setData["bonus_" . $i]) { //How many pieces do we need? $requiredSetPieces = $setData["pieces_" . $i]; //SET BONUSES switchConnection("armory", REALM_NAME); $setBonus = spell_parsedata(mysql_fetch_assoc(execute_query("SELECT * FROM `dbc_spell` WHERE `id` = " . $setData["bonus_" . $i] . " LIMIT 1"))); if ($owned_count >= $requiredSetPieces) { $tooltipText .= tooltip_addsinglerow("(" . $requiredSetPieces . ") " . $lang["set"] . ": " . $setBonus, "item-set-item-acquired"); } else { $tooltipText .= tooltip_addsinglerow("(" . $requiredSetPieces . ") " . $lang["set"] . ": " . $setBonus, "item-set-item-unacquired"); } $itemtable .= "<br /><span class=\"setItemGray\">(" . $requiredSetPieces . ") " . $lang["set"] . ": " . $setBonus . "</span>"; } } } /* Flavour Text */ if ($itemdata["description"] != NULL) { $tooltipText .= tooltip_addsinglerow("<span class=\"myYellow\">"" . $itemdata["description"] . ""</span>"); $itemtable .= "<br /><span class=\"myYellow\">"" . $itemdata["description"] . ""</span>"; } /* Item Source */ if ($config["ShowSource"]) { switchConnection("armory", REALM_NAME); $SourceQuery = execute_query("SELECT `item_source` FROM `cache_item_search` WHERE `item_id` = " . $itemid . " LIMIT 1"); if ($row = mysql_fetch_assoc($SourceQuery)) { $ItemSource = $row["item_source"]; } else { $item_search_cache = cache_item_search($itemid); $ItemSource = $item_search_cache["item_source"]; } $tooltipText .= "<tr><td colspan=\"2\"><br /><span class=\"myYellow\">" . $lang["source"] . ": </span><span class=\"\">" . $ItemSource . "</span></td></tr>"; $itemtable .= "<br /><br /><span class=\"myYellow\">" . $lang["source"] . ": </span><span class=\"\">" . $ItemSource . "</span>"; } $tooltipText .= "</table>"; $itemtable .= "</div>"; return $itemguid ? $tooltipText : array($tooltipText, $itemtable); }