function bbcode_callbacks_wow($item) { global $item_datasite; wowhead_tt(); require_once "scripts/id_tab.php"; require_once "scripts/get_lib.php"; return "<a href=\"{$item_datasite}{$item[1]}\" target=\"_blank\"\r\nonmouseover=\"toolTip('" . addslashes(get_item_tooltip($item[1])) . "','item_tooltip')\" onmouseout=\"toolTip()\">\r\n<img src=\"" . get_item_icon($item[1]) . "\" class=\"icon_border\" alt=\"\" /></a>"; }
function bbcode_callbacks_wow($item) { global $base_datasite, $item_datasite; wowhead_tt(); require_once "scripts/id_tab.php"; require_once "scripts/get_lib.php"; return ' <a href="' . $base_datasite . $item_datasite . $item[1] . '" target="_blank" onmouseover="oldtoolTip(\'' . addslashes(get_item_tooltip($item[1])) . '\',\'old_item_tooltip\')" onmouseout="oldtoolTip()"> <img src="' . get_item_icon($item[1]) . '" class="icon_border" alt="" /> </a>'; }
function search() { global $lang_global, $lang_mail, $output, $itemperpage, $item_datasite, $mangos_db, $characters_db, $realm_id, $sql_search_limit; wowhead_tt(); if (!isset($_GET['search_value']) || !isset($_GET['search_by'])) { redirect("mail_on.php?error=2"); } $sql = new SQL(); $sql->connect($characters_db[$realm_id]['addr'], $characters_db[$realm_id]['user'], $characters_db[$realm_id]['pass'], $characters_db[$realm_id]['name']); $search_value = $sql->quote_smart($_GET['search_value']); $search_by = $sql->quote_smart($_GET['search_by']); $search_menu = array('sender', 'receiver'); // if (!array_key_exists($search_by, $search_menu)) $search_by = 'sender'; $start = isset($_GET['start']) ? $sql->quote_smart($_GET['start']) : 0; $order_by = isset($_GET['order_by']) ? $sql->quote_smart($_GET['order_by']) : "id"; $dir = isset($_GET['dir']) ? $sql->quote_smart($_GET['dir']) : 1; $order_dir = $dir ? "ASC" : "DESC"; $dir = $dir ? 0 : 1; $temp = $sql->query("SELECT guid FROM `characters` WHERE name like '%{$search_value}%'"); $search_value = $sql->result($temp, 0, 'guid'); $query_1 = $sql->query("SELECT count(*) FROM `mail`"); $query = $sql->query("SELECT a.id, a.messageType, a.sender, a.receiver, a.subject, a.itemTextId, a.has_items, a.money, a.cod, a.checked, b.item_template\r\n FROM mail a\r\n INNER JOIN mail_items b ON a.id = b.mail_id\r\n WHERE {$search_by} = {$search_value}\r\n ORDER BY {$order_by} {$order_dir} LIMIT {$start}, {$itemperpage}"); $this_page = $sql->num_rows($query); $all_record = $sql->result($query_1, 0); $total_found = $sql->num_rows($query); //==========================top page navigation starts here======================== $output .= "<center><table class=\"top_hidden\">\r\n <tr><td>\r\n <table class=\"hidden\">\r\n <tr><td>\r\n <form action=\"mail_on.php\" method=\"get\" name=\"form\">\r\n <input type=\"hidden\" name=\"action\" value=\"search\" />\r\n <input type=\"hidden\" name=\"error\" value=\"4\" />\r\n <input type=\"text\" size=\"45\" name=\"search_value\" />\r\n <select name=\"search_by\">\r\n <option value=\"sender\">Sender</option>\r\n <option value=\"receiver\">Receiver</option>\r\n </select></form></td><td>"; makebutton($lang_global['search'], "javascript:do_submit()", 80); $output .= "</td></tr></table>\r\n <td align=\"right\">"; $output .= generate_pagination("mail_on.php?action=search&order_by={$order_by}&dir=" . !$dir, $all_record, $itemperpage, $start); $output .= "</td></tr></table>"; //==========================top page navigation ENDS here ======================== $output .= "<table class=\"lined\">\r\n <tr>\r\n <th width=\"5%\">" . $lang_mail['id'] . "</th>\r\n <th width=\"5%\">" . $lang_mail['mail_type'] . "</th>\r\n <th width=\"10%\">" . $lang_mail['sender'] . "</th>\r\n <th width=\"10%\">" . $lang_mail['receiver'] . "</th>\r\n <th width=\"15%\">" . $lang_mail['subject'] . "</th>\r\n <th width=\"5%\">" . $lang_mail['has_items'] . "</th>\r\n <th width=\"25%\">" . $lang_mail['text'] . "</th>\r\n <th width=\"20%\">" . $lang_mail['money'] . "</th>\r\n <th width=\"5%\">" . $lang_mail['checked'] . "</th>\r\n </tr>"; while ($mail = $sql->fetch_array($query)) { $g = floor($mail[7] / 10000); $mail[7] -= $g * 10000; $s = floor($mail[7] / 100); $mail[7] -= $s * 100; $c = $mail[7]; $money = ""; if ($mail[7] > 0) { $money = $g . "<img src=\"./img/gold.gif\" /> " . $s . "<img src=\"./img/silver.gif\" /> " . $c . "<img src=\"./img/copper.gif\" /> "; } $output .= "<tr valign=top>\r\n <td>{$mail['0']}</td>\r\n <td>" . get_mail_source($mail[1]) . "</td>\r\n <td><a href=\"char.php?id={$mail['2']}\">" . get_char_name($mail[2]) . "</a></td>\r\n <td><a href=\"char.php?id={$mail['3']}\">" . get_char_name($mail[3]) . "</a></td>\r\n <td>{$mail['4']}</td>\r\n "; $output .= "<td>"; $output .= "\r\n <a style=\"padding:2px;\" href=\"{$item_datasite}{$mail[10]}\" target=\"_blank\">\r\n <img class=\"bag_icon\" src=\"" . get_item_icon($mail[10]) . "\" alt=\"\" />\r\n </a>"; //maketooltip("<img src=\"./img/up.gif\" alt=\"\">", $item_datasite{$mail[10]}, $mail[10], "item_tooltip", "target=\"_blank\""); $output .= "</td>"; $output .= "<td>" . get_mail_text($mail[5]) . "</td>\r\n <td>{$money}</td>\r\n <td>" . get_check_state($mail[9]) . "</td>\r\n </tr>"; } /*--------------------------------------------------*/ $output .= "<tr><td colspan=\"6\" class=\"hidden\" align=\"right\">All Mails: {$all_record}</td></tr>\r\n </table></center>"; $sql->close(); }
function char_inv(&$sqlr, &$sqlc) { global $output, $lang_global, $lang_char, $lang_item, $realm_id, $characters_db, $world_db, $mmfpm_db, $action_permission, $user_lvl, $user_name, $item_datasite; // this page uses wowhead tooltops wowhead_tt(); require_once 'core/char/char_security.php'; // getting character data from database $result = $sqlc->query('SELECT account, name, race, class, level, gender, money FROM characters WHERE guid = ' . $id . ' LIMIT 1'); // no point going further if character does not exist if ($sqlc->num_rows($result)) { $char = $sqlc->fetch_assoc($result); // we get user permissions first $owner_acc_id = $sqlc->result($result, 0, 'account'); $result = $sqlr->query('SELECT `username`, `gmlevel` FROM `account` LEFT JOIN `account_access` ON `account`.`id`=`account_access`.`id` WHERE `account`.`id` = ' . $owner_acc_id . ' ORDER BY `gmlevel` DESC LIMIT 1'); $owner_name = $sqlr->result($result, 0, 'username'); $owner_gmlvl = $sqlr->result($result, 0, 'gmlevel'); if (empty($owner_gmlvl)) { $owner_gmlvl = 0; } // check user permission if ($user_lvl > $owner_gmlvl || $owner_name === $user_name) { // main data that we need for this page, character inventory $result = $sqlc->query('SELECT ci.bag, ci.slot, ci.item, ii.itemEntry, count as stack_count FROM character_inventory ci INNER JOIN item_instance ii on ii.guid = ci.item WHERE ci.guid = ' . $id . ' ORDER BY ci.bag,ci.slot'); //---------------Page Specific Data Starts Here-------------------------- // lets start processing first before we display anything // we have lots to do for inventory // character bags, 1 main + 4 additional $bag = array(0 => array(), 1 => array(), 2 => array(), 3 => array(), 4 => array()); // character bang, 1 main + 7 additional $bank = array(0 => array(), 1 => array(), 2 => array(), 3 => array(), 4 => array(), 5 => array(), 6 => array(), 7 => array()); // this is where we will put items that are in main bag $bag_id = array(); // this is where we will put items that are in main bank $bank_bag_id = array(); // this is where we will put items that are in character bags, 4 arrays, 1 for each $equiped_bag_id = array(0, 0, 0, 0, 0); // this is where we will put items that are in bank bangs, 7 arrays, 1 for each $equip_bnk_bag_id = array(0, 0, 0, 0, 0, 0, 0, 0); $sqlw = new SQL(); $sqlw->connect($world_db[$realmid]['addr'], $world_db[$realmid]['user'], $world_db[$realmid]['pass'], $world_db[$realmid]['name']); // we load the things in each bag slot while ($slot = $sqlc->fetch_assoc($result)) { if ($slot['bag'] == 0 && $slot['slot'] > 18) { if ($slot['slot'] < 23) { $bag_id[$slot['item']] = $slot['slot'] - 18; $equiped_bag_id[$slot['slot'] - 18] = array($slot['itemEntry'], $sqlw->result($sqlw->query('SELECT ContainerSlots FROM item_template WHERE entry = ' . $slot['itemEntry'] . ''), 0, 'ContainerSlots'), $slot['stack_count']); } elseif ($slot['slot'] < 39) { if (isset($bag[0][$slot['slot'] - 23])) { $bag[0][$slot['slot'] - 23][0]++; } else { $bag[0][$slot['slot'] - 23] = array($slot['itemEntry'], 0, $slot['stack_count']); } } elseif ($slot['slot'] < 67) { // SLOT 39 TO 66 (Bank) $bank[0][$slot['slot'] - 39] = array($slot['itemEntry'], 0, $slot['stack_count']); } elseif ($slot['slot'] < 74) { $bank_bag_id[$slot['item']] = $slot['slot'] - 66; $equip_bnk_bag_id[$slot['slot'] - 66] = array($slot['itemEntry'], $sqlw->result($sqlw->query('SELECT ContainerSlots FROM item_template WHERE entry = ' . $slot['itemEntry'] . ''), 0, 'ContainerSlots'), $slot['stack_count']); } } else { // Bags if (isset($bag_id[$slot['bag']])) { if (isset($bag[$bag_id[$slot['bag']]][$slot['slot']])) { $bag[$bag_id[$slot['bag']]][$slot['slot']][1]++; } else { $bag[$bag_id[$slot['bag']]][$slot['slot']] = array($slot['itemEntry'], 0, $slot['stack_count']); } } elseif (isset($bank_bag_id[$slot['bag']])) { $bank[$bank_bag_id[$slot['bag']]][$slot['slot']] = array($slot['itemEntry'], 0, $slot['stack_count']); } } } unset($slot); unset($bag_id); unset($bank_bag_id); unset($result); //------------------------Character Tabs--------------------------------- // we start with a lead of 10 spaces, // because last line of header is an opening tag with 8 spaces // keep html indent in sync, so debuging from browser source would be easy to read $output .= ' <center> <div id="tab_content"> <h1>' . $lang_char['inventory'] . '</h1> <br />'; require_once 'core/char/char_header.php'; $output .= ' <br /><br /> <table class="lined" style="width: 700px;"> <tr>'; //---------------Page Specific Data Starts Here-------------------------- $sqlm = new SQL(); $sqlm->connect($mmfpm_db['addr'], $mmfpm_db['user'], $mmfpm_db['pass'], $mmfpm_db['name']); // equipped bags for ($i = 1; $i < 5; ++$i) { $output .= ' <th>'; if ($equiped_bag_id[$i]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $equiped_bag_id[$i][0] . '" target="_blank"> <img class="bag_icon" src="' . get_item_icon($equiped_bag_id[$i][0], $sqlm, $sqlw) . '" alt="" /> </a> ' . $lang_item['bag'] . ' ' . $i . '<br /> <font class="small">' . $equiped_bag_id[$i][1] . ' ' . $lang_item['slots'] . '</font>'; } $output .= ' </th>'; } $output .= ' </tr> <tr>'; // equipped bag slots for ($t = 1; $t < 5; ++$t) { $output .= ' <td class="bag" valign="bottom" align="center"> <div style="width:' . 4 * 43 . 'px;height:' . ceil($equiped_bag_id[$t][1] / 4) * 41 . 'px;">'; $dsp = $equiped_bag_id[$t][1] % 4; if ($dsp) { $output .= ' <div class="no_slot"></div>'; } foreach ($bag[$t] as $pos => $item) { $item[2] = $item[2] == 1 ? '' : $item[2]; $output .= ' <div style="left:' . ($pos + $dsp) % 4 * 42 . 'px;top:' . floor(($pos + $dsp) / 4) * 41 . 'px;"> <a style="padding:2px;" href="' . $item_datasite . $item[0] . '" target="_blank"> <img src="' . get_item_icon($item[0], $sqlm, $sqlw) . '" alt="" /> </a> <div style="width:25px;margin:-20px 0px 0px 18px;color: black; font-size:14px">' . $item[2] . '</div> <div style="width:25px;margin:-21px 0px 0px 17px;font-size:14px">' . $item[2] . '</div> </div>'; } $output .= ' </div> </td>'; } unset($equiped_bag_id); $output .= ' </tr> <tr> <th colspan="2" align="left"> <img class="bag_icon" src="' . get_item_icon(3960, $sqlm, $sqlw) . '" alt="" align="middle" style="margin-left:100px;" /> <font style="margin-left:30px;">' . $lang_char['backpack'] . '</font> </th> <th colspan="2"> ' . $lang_char['bank_items'] . ' </th> </tr> <tr> <td colspan="2" class="bag" align="center" height="220px"> <div style="width:' . 4 * 43 . 'px;height:' . ceil(16 / 4) * 41 . 'px;">'; // inventory items foreach ($bag[0] as $pos => $item) { $item[2] = $item[2] == 1 ? '' : $item[2]; $output .= ' <div style="left:' . $pos % 4 * 42 . 'px;top:' . floor($pos / 4) * 41 . 'px;"> <a style="padding:2px;" href="' . $item_datasite . $item[0] . '" target="_blank"> <img src="' . get_item_icon($item[0], $sqlm, $sqlw) . '" alt="" /> </a> <div style="width:25px;margin:-20px 0px 0px 18px;color: black; font-size:14px\\">' . $item[2] . '</div> <div style="width:25px;margin:-21px 0px 0px 17px;font-size:14px">' . $item[2] . '</div> </div>'; } unset($bag); $output .= ' </div> <div style="text-align:right;width:168px;background-image:none;background-color:#393936;padding:2px;"> <b> ' . substr($char['money'], 0, -4) . '<img src="img/gold.gif" alt="" align="middle" /> ' . substr($char['money'], -4, -2) . '<img src="img/silver.gif" alt="" align="middle" /> ' . substr($char['money'], -2) . '<img src="img/copper.gif" alt="" align="middle" /> </b> </div> </td> <td colspan="2" class="bank" align="center"> <div style="width:' . 7 * 43 . 'px;height:' . ceil(24 / 7) * 41 . 'px;">'; // bank items foreach ($bank[0] as $pos => $item) { $item[2] = $item[2] == 1 ? '' : $item[2]; $output .= ' <div style="left:' . $pos % 7 * 43 . 'px;top:' . floor($pos / 7) * 41 . 'px;"> <a style="padding:2px;" href="' . $item_datasite . $item[0] . '" target="_blank"> <img src="' . get_item_icon($item[0], $sqlm, $sqlw) . '" class="inv_icon" alt="" /> </a> <div style="width:25px;margin:-20px 0px 0px 18px;color: black; font-size:14px">' . $item[2] . '</div> <div style="width:25px;margin:-21px 0px 0px 17px;font-size:14px">' . $item[2] . '</div> </div>'; } $output .= ' </div> </td> </tr> <tr>'; // equipped bank bags, first 4 for ($i = 1; $i < 5; ++$i) { $output .= ' <th>'; if ($equip_bnk_bag_id[$i]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $equip_bnk_bag_id[$i][0] . '" target="_blank"> <img class="bag_icon" src="' . get_item_icon($equip_bnk_bag_id[$i][0], $sqlm, $sqlw) . '" alt="" /> </a> ' . $lang_item['bag'] . ' ' . $i . '<br /> <font class="small">' . $equip_bnk_bag_id[$i][1] . ' ' . $lang_item['slots'] . '</font>'; } $output .= ' </th>'; } $output .= ' </tr> <tr>'; // equipped bank bag slots for ($t = 1; $t < 8; ++$t) { // equipped bank bags, last 3 if ($t === 5) { $output .= ' </tr> <tr>'; for ($i = 5; $i < 8; ++$i) { $output .= ' <th>'; if ($equip_bnk_bag_id[$i]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $equip_bnk_bag_id[$i][0] . '" target="_blank"> <img class="bag_icon" src="' . get_item_icon($equip_bnk_bag_id[$i][0], $sqlm, $sqlw) . '" alt="" /> </a> ' . $lang_item['bag'] . ' ' . $i . '<br /> <font class="small">' . $equip_bnk_bag_id[$i][1] . ' ' . $lang_item['slots'] . '</font>'; } $output .= ' </th>'; } $output .= ' <th> </th> </tr> <tr>'; } $output .= ' <td class="bank" align="center"> <div style="width:' . 4 * 43 . 'px;height:' . ceil($equip_bnk_bag_id[$t][1] / 4) * 41 . 'px;">'; $dsp = $equip_bnk_bag_id[$t][1] % 4; if ($dsp) { $output .= ' <div class="no_slot"></div>'; } foreach ($bank[$t] as $pos => $item) { $item[2] = $item[2] == 1 ? '' : $item[2]; $output .= ' <div style="left:' . ($pos + $dsp) % 4 * 43 . 'px;top:' . floor(($pos + $dsp) / 4) * 41 . 'px;"> <a style="padding:2px;" href="' . $item_datasite . $item[0] . '" target="_blank"> <img src="' . get_item_icon($item[0], $sqlm, $sqlw) . '" alt="" /> </a> <div style="width:25px;margin:-20px 0px 0px 18px;color: black; font-size:14px">' . $item[2] . '</div> <div style="width:25px;margin:-21px 0px 0px 17px;font-size:14px">' . $item[2] . '</div> </div>'; } $output .= ' </div> </td>'; } unset($equip_bnk_bag_id); unset($bank); $output .= ' <td class="bank"></td>'; //---------------Page Specific Data Ends here---------------------------- //---------------Character Tabs Footer----------------------------------- $output .= ' </tr> </table> </div> </div> <br />'; require_once 'core/char/char_footer.php'; $output .= ' <br /> </center> <!-- end of char_inv.php -->'; } else { error($lang_char['no_permission']); } } else { error($lang_char['no_char_found']); } }
function char_main(&$sqlr, &$sqlc) { global $output, $lang_global, $lang_char, $lang_item, $realm_id, $realm_db, $characters_db, $world_db, $server, $mmfpm_db, $action_permission, $user_lvl, $user_name, $user_id, $item_datasite, $spell_datasite, $showcountryflag; // this page uses wowhead tooltops wowhead_tt(); // we need at least an id or we would have nothing to show if (empty($_GET['id'])) { error($lang_global['empty_fields']); } // this is multi realm support, as of writing still under development // this page is already implementing it if (empty($_GET['realm'])) { $realmid = $realm_id; } else { $realmid = $sqlr->quote_smart($_GET['realm']); if (is_numeric($realmid)) { $sqlc->connect($characters_db[$realmid]['addr'], $characters_db[$realmid]['user'], $characters_db[$realmid]['pass'], $characters_db[$realmid]['name']); } else { $realmid = $realm_id; } } $id = $sqlc->quote_smart($_GET['id']); if (is_numeric($id)) { } else { error($lang_global['empty_fields']); } $result = $sqlc->query('SELECT account, race FROM characters WHERE guid = ' . $id . ' LIMIT 1'); if ($sqlc->num_rows($result)) { //resrict by owner's gmlvl $owner_acc_id = $sqlc->result($result, 0, 'account'); $query = $sqlr->query('SELECT gmlevel, username FROM account WHERE id = ' . $owner_acc_id . ''); $owner_gmlvl = $sqlr->result($query, 0, 'gmlevel'); $owner_name = $sqlr->result($query, 0, 'username'); if ($user_lvl || $server[$realmid]['both_factions']) { $side_v = 0; $side_p = 0; } else { $side_p = in_array($sqlc->result($result, 0, 'race'), array(2, 5, 6, 8, 10)) ? 1 : 2; $result_1 = $sqlc->query('SELECT race FROM characters WHERE account = ' . $user_id . ' LIMIT 1'); if ($sqlc->num_rows($result)) { $side_v = in_array($sqlc->result($result_1, 0, 'race'), array(2, 5, 6, 8, 10)) ? 1 : 2; } else { $side_v = 0; } unset($result_1); } if ($user_lvl >= $owner_gmlvl && ($side_v === $side_p || !$side_v)) { $result = $sqlc->query('SELECT account, data, name, race, class, gender, level, zone, map, online, totaltime, arenaPoints, totalHonorPoints, totalKills, health, power1, power2, power3, power4, power5, power6, power7 FROM characters WHERE guid = ' . $id . ''); $char = $sqlc->fetch_assoc($result); $char_data = explode(' ', $char['data']); $online = $char['online'] ? $lang_char['online'] : $lang_char['offline']; if ($char_data[CHAR_DATA_OFFSET_GUILD_ID]) { $guild_name = $sqlc->result($sqlc->query('SELECT name FROM guild WHERE guildid =' . $char_data[CHAR_DATA_OFFSET_GUILD_ID] . ''), 0, 'name'); $guild_name = '<a href="guild.php?action=view_guild&realm=' . $realmid . '&error=3&id=' . $char_data[CHAR_DATA_OFFSET_GUILD_ID] . '" >' . $guild_name . '</a>'; $mrank = $char_data[CHAR_DATA_OFFSET_GUILD_RANK] + 1; $guild_rank = $sqlc->result($sqlc->query('SELECT rname FROM guild_rank WHERE guildid =' . $char_data[CHAR_DATA_OFFSET_GUILD_ID] . ' AND rid=' . $mrank . ''), 0, 'rname'); } else { $guild_name = $lang_global['none']; $guild_rank = $lang_global['none']; } $block = unpack('f', pack('L', $char_data[CHAR_DATA_OFFSET_BLOCK])); $block = round($block[1], 2); $dodge = unpack('f', pack('L', $char_data[CHAR_DATA_OFFSET_DODGE])); $dodge = round($dodge[1], 2); $parry = unpack('f', pack('L', $char_data[CHAR_DATA_OFFSET_PARRY])); $parry = round($parry[1], 2); $crit = unpack('f', pack('L', $char_data[CHAR_DATA_OFFSET_MELEE_CRIT])); $crit = round($crit[1], 2); $ranged_crit = unpack('f', pack('L', $char_data[CHAR_DATA_OFFSET_RANGE_CRIT])); $ranged_crit = round($ranged_crit[1], 2); $maxdamage = unpack('f', pack('L', $char_data[CHAR_DATA_OFFSET_MAXDAMAGE])); $maxdamage = round($maxdamage[1], 0); $mindamage = unpack('f', pack('L', $char_data[CHAR_DATA_OFFSET_MINDAMAGE])); $mindamage = round($mindamage[1], 0); $maxrangeddamage = unpack('f', pack('L', $char_data[CHAR_DATA_OFFSET_MAXRANGEDDAMAGE])); $maxrangeddamage = round($maxrangeddamage[1], 0); $minrangeddamage = unpack('f', pack('L', $char_data[CHAR_DATA_OFFSET_MINRANGEDDAMAGE])); $minrangeddamage = round($minrangeddamage[1], 0); $spell_crit = 100; for ($i = 0; $i < 6; ++$i) { $temp = unpack('f', pack('L', $char_data[CHAR_DATA_OFFSET_SPELL_CRIT + 1 + $i])); if ($temp[1] < $spell_crit) { $spell_crit = $temp[1]; } } $spell_crit = round($spell_crit, 2); $spell_damage = 9999; for ($i = 0; $i < 6; ++$i) { if ($char_data[CHAR_DATA_OFFSET_SPELL_DAMAGE + 1 + $i] < $spell_damage) { $spell_damage = $char_data[CHAR_DATA_OFFSET_SPELL_DAMAGE + 1 + $i]; } } $rage = round($char['power2'] / 10); $expertise = '' . $char_data[CHAR_DATA_OFFSET_EXPERTISE] . ' / ' . $char_data[CHAR_DATA_OFFSET_OFFHAND_EXPERTISE] . ''; $EQU_HEAD = $char_data[CHAR_DATA_OFFSET_EQU_HEAD]; $EQU_NECK = $char_data[CHAR_DATA_OFFSET_EQU_NECK]; $EQU_SHOULDER = $char_data[CHAR_DATA_OFFSET_EQU_SHOULDER]; $EQU_SHIRT = $char_data[CHAR_DATA_OFFSET_EQU_SHIRT]; $EQU_CHEST = $char_data[CHAR_DATA_OFFSET_EQU_CHEST]; $EQU_BELT = $char_data[CHAR_DATA_OFFSET_EQU_BELT]; $EQU_LEGS = $char_data[CHAR_DATA_OFFSET_EQU_LEGS]; $EQU_FEET = $char_data[CHAR_DATA_OFFSET_EQU_FEET]; $EQU_WRIST = $char_data[CHAR_DATA_OFFSET_EQU_WRIST]; $EQU_GLOVES = $char_data[CHAR_DATA_OFFSET_EQU_GLOVES]; $EQU_FINGER1 = $char_data[CHAR_DATA_OFFSET_EQU_FINGER1]; $EQU_FINGER2 = $char_data[CHAR_DATA_OFFSET_EQU_FINGER2]; $EQU_TRINKET1 = $char_data[CHAR_DATA_OFFSET_EQU_TRINKET1]; $EQU_TRINKET2 = $char_data[CHAR_DATA_OFFSET_EQU_TRINKET2]; $EQU_BACK = $char_data[CHAR_DATA_OFFSET_EQU_BACK]; $EQU_MAIN_HAND = $char_data[CHAR_DATA_OFFSET_EQU_MAIN_HAND]; $EQU_OFF_HAND = $char_data[CHAR_DATA_OFFSET_EQU_OFF_HAND]; $EQU_RANGED = $char_data[CHAR_DATA_OFFSET_EQU_RANGED]; $EQU_TABARD = $char_data[CHAR_DATA_OFFSET_EQU_TABARD]; /* // reserved incase we want to use back minimanagers' built in tooltip, instead of wowheads' // minimanagers' item tooltip needs updating, but it can show enchantments and sockets. $equiped_items = array ( 1 => array(($EQU_HEAD ? get_item_tooltip($EQU_HEAD) : 0),($EQU_HEAD ? get_item_icon($EQU_HEAD) : 0),($EQU_HEAD ? get_item_border($EQU_HEAD) : 0)), 2 => array(($EQU_NECK ? get_item_tooltip($EQU_NECK) : 0),($EQU_NECK ? get_item_icon($EQU_NECK) : 0),($EQU_NECK ? get_item_border($EQU_NECK) : 0)), 3 => array(($EQU_SHOULDER ? get_item_tooltip($EQU_SHOULDER) : 0),($EQU_SHOULDER ? get_item_icon($EQU_SHOULDER) : 0),($EQU_SHOULDER ? get_item_border($EQU_SHOULDER) : 0)), 4 => array(($EQU_SHIRT ? get_item_tooltip($EQU_SHIRT) : 0),($EQU_SHIRT ? get_item_icon($EQU_SHIRT) : 0),($EQU_SHIRT ? get_item_border($EQU_SHIRT) : 0)), 5 => array(($EQU_CHEST ? get_item_tooltip($EQU_CHEST) : 0),($EQU_CHEST ? get_item_icon($EQU_CHEST) : 0),($EQU_CHEST ? get_item_border($EQU_CHEST) : 0)), 6 => array(($EQU_BELT ? get_item_tooltip($EQU_BELT) : 0),($EQU_BELT ? get_item_icon($EQU_BELT) : 0),($EQU_BELT ? get_item_border($EQU_BELT) : 0)), 7 => array(($EQU_LEGS ? get_item_tooltip($EQU_LEGS) : 0),($EQU_LEGS ? get_item_icon($EQU_LEGS) : 0),($EQU_LEGS ? get_item_border($EQU_LEGS) : 0)), 8 => array(($EQU_FEET ? get_item_tooltip($EQU_FEET) : 0),($EQU_FEET ? get_item_icon($EQU_FEET) : 0),($EQU_FEET ? get_item_border($EQU_FEET) : 0)), 9 => array(($EQU_WRIST ? get_item_tooltip($EQU_WRIST) : 0),($EQU_WRIST ? get_item_icon($EQU_WRIST) : 0),($EQU_WRIST ? get_item_border($EQU_WRIST) : 0)), 10 => array(($EQU_GLOVES ? get_item_tooltip($EQU_GLOVES) : 0),($EQU_GLOVES ? get_item_icon($EQU_GLOVES) : 0),($EQU_GLOVES ? get_item_border($EQU_GLOVES) : 0)), 11 => array(($EQU_FINGER1 ? get_item_tooltip($EQU_FINGER1) : 0),($EQU_FINGER1 ? get_item_icon($EQU_FINGER1) : 0),($EQU_FINGER1 ? get_item_border($EQU_FINGER1) : 0)), 12 => array(($EQU_FINGER2 ? get_item_tooltip($EQU_FINGER2) : 0),($EQU_FINGER2 ? get_item_icon($EQU_FINGER2) : 0),($EQU_FINGER2 ? get_item_border($EQU_FINGER2) : 0)), 13 => array(($EQU_TRINKET1 ? get_item_tooltip($EQU_TRINKET1) : 0),($EQU_TRINKET1 ? get_item_icon($EQU_TRINKET1) : 0),($EQU_TRINKET1 ? get_item_border($EQU_TRINKET1) : 0)), 14 => array(($EQU_TRINKET2 ? get_item_tooltip($EQU_TRINKET2) : 0),($EQU_TRINKET2 ? get_item_icon($EQU_TRINKET2) : 0),($EQU_TRINKET2 ? get_item_border($EQU_TRINKET2) : 0)), 15 => array(($EQU_BACK ? get_item_tooltip($EQU_BACK) : 0),($EQU_BACK ? get_item_icon($EQU_BACK) : 0),($EQU_BACK ? get_item_border($EQU_BACK) : 0)), 16 => array(($EQU_MAIN_HAND ? get_item_tooltip($EQU_MAIN_HAND) : 0),($EQU_MAIN_HAND ? get_item_icon($EQU_MAIN_HAND) : 0),($EQU_MAIN_HAND ? get_item_border($EQU_MAIN_HAND) : 0)), 17 => array(($EQU_OFF_HAND ? get_item_tooltip($EQU_OFF_HAND) : 0),($EQU_OFF_HAND ? get_item_icon($EQU_OFF_HAND) : 0),($EQU_OFF_HAND ? get_item_border($EQU_OFF_HAND) : 0)), 18 => array(($EQU_RANGED ? get_item_tooltip($EQU_RANGED) : 0),($EQU_RANGED ? get_item_icon($EQU_RANGED) : 0),($EQU_RANGED ? get_item_border($EQU_RANGED) : 0)), 19 => array(($EQU_TABARD ? get_item_tooltip($EQU_TABARD) : 0),($EQU_TABARD ? get_item_icon($EQU_TABARD) : 0),($EQU_TABARD ? get_item_border($EQU_TABARD) : 0)) ); */ $sqlm = new SQL(); $sqlm->connect($mmfpm_db['addr'], $mmfpm_db['user'], $mmfpm_db['pass'], $mmfpm_db['name']); $sqlw = new SQL(); $sqlw->connect($world_db[$realmid]['addr'], $world_db[$realmid]['user'], $world_db[$realmid]['pass'], $world_db[$realmid]['name']); $equiped_items = array(1 => array('', $EQU_HEAD ? get_item_icon($EQU_HEAD, $sqlm, $sqlw) : 0, $EQU_HEAD ? get_item_border($EQU_HEAD, $sqlw) : 0), 2 => array('', $EQU_NECK ? get_item_icon($EQU_NECK, $sqlm, $sqlw) : 0, $EQU_NECK ? get_item_border($EQU_NECK, $sqlw) : 0), 3 => array('', $EQU_SHOULDER ? get_item_icon($EQU_SHOULDER, $sqlm, $sqlw) : 0, $EQU_SHOULDER ? get_item_border($EQU_SHOULDER, $sqlw) : 0), 4 => array('', $EQU_SHIRT ? get_item_icon($EQU_SHIRT, $sqlm, $sqlw) : 0, $EQU_SHIRT ? get_item_border($EQU_SHIRT, $sqlw) : 0), 5 => array('', $EQU_CHEST ? get_item_icon($EQU_CHEST, $sqlm, $sqlw) : 0, $EQU_CHEST ? get_item_border($EQU_CHEST, $sqlw) : 0), 6 => array('', $EQU_BELT ? get_item_icon($EQU_BELT, $sqlm, $sqlw) : 0, $EQU_BELT ? get_item_border($EQU_BELT, $sqlw) : 0), 7 => array('', $EQU_LEGS ? get_item_icon($EQU_LEGS, $sqlm, $sqlw) : 0, $EQU_LEGS ? get_item_border($EQU_LEGS, $sqlw) : 0), 8 => array('', $EQU_FEET ? get_item_icon($EQU_FEET, $sqlm, $sqlw) : 0, $EQU_FEET ? get_item_border($EQU_FEET, $sqlw) : 0), 9 => array('', $EQU_WRIST ? get_item_icon($EQU_WRIST, $sqlm, $sqlw) : 0, $EQU_WRIST ? get_item_border($EQU_WRIST, $sqlw) : 0), 10 => array('', $EQU_GLOVES ? get_item_icon($EQU_GLOVES, $sqlm, $sqlw) : 0, $EQU_GLOVES ? get_item_border($EQU_GLOVES, $sqlw) : 0), 11 => array('', $EQU_FINGER1 ? get_item_icon($EQU_FINGER1, $sqlm, $sqlw) : 0, $EQU_FINGER1 ? get_item_border($EQU_FINGER1, $sqlw) : 0), 12 => array('', $EQU_FINGER2 ? get_item_icon($EQU_FINGER2, $sqlm, $sqlw) : 0, $EQU_FINGER2 ? get_item_border($EQU_FINGER2, $sqlw) : 0), 13 => array('', $EQU_TRINKET1 ? get_item_icon($EQU_TRINKET1, $sqlm, $sqlw) : 0, $EQU_TRINKET1 ? get_item_border($EQU_TRINKET1, $sqlw) : 0), 14 => array('', $EQU_TRINKET2 ? get_item_icon($EQU_TRINKET2, $sqlm, $sqlw) : 0, $EQU_TRINKET2 ? get_item_border($EQU_TRINKET2, $sqlw) : 0), 15 => array('', $EQU_BACK ? get_item_icon($EQU_BACK, $sqlm, $sqlw) : 0, $EQU_BACK ? get_item_border($EQU_BACK, $sqlw) : 0), 16 => array('', $EQU_MAIN_HAND ? get_item_icon($EQU_MAIN_HAND, $sqlm, $sqlw) : 0, $EQU_MAIN_HAND ? get_item_border($EQU_MAIN_HAND, $sqlw) : 0), 17 => array('', $EQU_OFF_HAND ? get_item_icon($EQU_OFF_HAND, $sqlm, $sqlw) : 0, $EQU_OFF_HAND ? get_item_border($EQU_OFF_HAND, $sqlw) : 0), 18 => array('', $EQU_RANGED ? get_item_icon($EQU_RANGED, $sqlm, $sqlw) : 0, $EQU_RANGED ? get_item_border($EQU_RANGED, $sqlw) : 0), 19 => array('', $EQU_TABARD ? get_item_icon($EQU_TABARD, $sqlm, $sqlw) : 0, $EQU_TABARD ? get_item_border($EQU_TABARD, $sqlw) : 0)); if ($user_lvl > $owner_gmlvl || $owner_name === $user_name) { $output .= ' <!-- start of char.php --> <center> <div id="tab_content"> <div id="tab"> <ul> <li><a href="char_inv.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['inventory'] . '</a></li> <li><a href="char_extra.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['extra'] . '</a></li> ' . ($char['level'] < 10 ? '' : '<li><a href="char_talent.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['talents'] . '</a></li>') . ' <li><a href="char_achieve.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['achievements'] . '</a></li> <li><a href="char_rep.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['reputation'] . '</a></li> <li><a href="char_skill.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['skills'] . '</a></li> <li><a href="char_quest.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['quests'] . '</a></li>'; if (char_get_class_name($char['class']) === 'Hunter') { $output .= ' <li><a href="char_pets.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['pets'] . '</a></li>'; } $output .= ' <li><a href="char_friends.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['friends'] . '</a></li> <li><a href="char_spell.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['spells'] . '</a></li> <li><a href="char_mail.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['mail'] . '</a></li> </ul> <ul>'; // selected char tab at last $output .= ' <li id="selected"><a href="char.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['char_sheet'] . '</a></li>'; } else { $output .= ' <center> <div id="tab"> <ul> <li id="selected"><a href="char.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['char_sheet'] . '</a></li> </ul> </div> <div id="tab_content"> <div id="tab"> <ul>'; } $output .= ' </ul> </div> <div id="tab_content2"> <table class="lined" style="width: 580px;"> <tr> <td colspan="2"> <div> <img src="' . char_get_avatar_img($char['level'], $char['gender'], $char['race'], $char['class'], 0) . '" alt="avatar" /> </div> <div>'; $a_results = $sqlc->query('SELECT DISTINCT spell FROM character_aura WHERE guid = ' . $id . ''); if ($sqlc->num_rows($a_results)) { while ($aura = $sqlc->fetch_assoc($a_results)) { $output .= ' <a style="padding:2px;" href="' . $spell_datasite . $aura['spell'] . '" target="_blank"> <img src="' . spell_get_icon($aura['spell'], $sqlm) . '" alt="' . $aura['spell'] . '" width="24" height="24" /> </a>'; } } $output .= ' </div> </td> <td colspan="4"> <font class="bold"> ' . htmlentities($char['name']) . ' - <img src="img/c_icons/' . $char['race'] . '-' . $char['gender'] . '.gif" onmousemove="toolTip(\'' . char_get_race_name($char['race']) . '\', \'item_tooltip\')" onmouseout="toolTip()" alt="" /> <img src="img/c_icons/' . $char['class'] . '.gif" onmousemove="toolTip(\'' . char_get_class_name($char['class']) . '\', \'item_tooltip\')" onmouseout="toolTip()" alt="" /> - lvl ' . char_get_level_color($char['level']) . ' </font> <br />' . get_map_name($char['map'], $sqlm) . ' - ' . get_zone_name($char['zone'], $sqlm) . ' <br />' . $lang_char['honor_points'] . ': ' . $char['totalHonorPoints'] . ' / ' . $char['arenaPoints'] . ' - ' . $lang_char['honor_kills'] . ': ' . $char['totalKills'] . ' <br />' . $lang_char['guild'] . ': ' . $guild_name . ' | ' . $lang_char['rank'] . ': ' . htmlentities($guild_rank) . ' <br />' . ($char['online'] ? '<img src="img/up.gif" onmousemove="toolTip(\'Online\', \'item_tooltip\')" onmouseout="toolTip()" alt="online" />' : '<img src="img/down.gif" onmousemove="toolTip(\'Offline\', \'item_tooltip\')" onmouseout="toolTip()" alt="offline" />'); if ($showcountryflag) { require_once 'libs/misc_lib.php'; $country = misc_get_country_by_account($char['account'], $sqlr, $sqlm); $output .= ' - ' . ($country['code'] ? '<img src="img/flags/' . $country['code'] . '.png" onmousemove="toolTip(\'' . $country['country'] . '\', \'item_tooltip\')" onmouseout="toolTip()" alt="" />' : '-'); unset($country); } $output .= ' </td> </tr> <tr> <td width="6%">'; if ($equiped_items[1][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_HEAD . '" target="_blank"> <img src="' . $equiped_items[1][1] . '" class="' . $equiped_items[1][2] . '" alt="Head" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_head.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> <td class="half_line" colspan="2" align="center" width="50%"> <div class="gradient_p">' . $lang_item['health'] . ':</div> <div class="gradient_pp">' . $char['health'] . '</div>'; if ($char['class'] == 11) { //druid $output .= ' </br> <div class="gradient_p">' . $lang_item['energy'] . ':</div> <div class="gradient_pp">' . $char['power4'] . '</div>'; } $output .= ' </td> <td class="half_line" colspan="2" align="center" width="50%">'; if ($char['class'] == 1) { $output .= ' <div class="gradient_p">' . $lang_item['rage'] . ':</div> <div class="gradient_pp">' . $rage . '</div>'; } elseif ($char['class'] == 4) { $output .= ' <div class="gradient_p">' . $lang_item['energy'] . ':</div> <div class="gradient_pp">' . $char['power4'] . '</div>'; } elseif ($char['class'] == 6) { // Don't know if FOCUS is the right one need to verify with Death Knight player. $output .= ' <div class="gradient_p">' . $lang_item['runic'] . ':</div> <div class="gradient_pp">Unknown</div>'; } elseif ($char['class'] == 11) { $output .= ' <div class="gradient_p">' . $lang_item['mana'] . ':</div> <div class="gradient_pp">' . $char['power1'] . '</div> </br> <div class="gradient_p">' . $lang_item['rage'] . ':</div> <div class="gradient_pp">' . $rage . '</div>'; } elseif ($char['class'] == 2 || $char['class'] == 3 || $char['class'] == 5 || $char['class'] == 7 || $char['class'] == 8 || $char['class'] == 9) { $output .= ' <div class="gradient_p">' . $lang_item['mana'] . ':</div> <div class="gradient_pp">' . $char['power1'] . '</div>'; } $output .= ' </td> <td width="6%">'; if ($equiped_items[10][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_GLOVES . '" target="_blank"> <img src="' . $equiped_items[10][1] . '" class="' . $equiped_items[10][2] . '" alt="Gloves" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_gloves.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> </tr> <tr> <td width="1%">'; if ($equiped_items[2][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_NECK . '" target="_blank"> <img src="' . $equiped_items[2][1] . '" class="' . $equiped_items[2][2] . '" alt="Neck" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_neck.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> <td class="half_line" colspan="2" rowspan="3" align="center" width="50%"> <div class="gradient_p"> ' . $lang_item['strength'] . ':<br /> ' . $lang_item['agility'] . ':<br /> ' . $lang_item['stamina'] . ':<br /> ' . $lang_item['intellect'] . ':<br /> ' . $lang_item['spirit'] . ':<br /> ' . $lang_item['armor'] . ': </div> <div class="gradient_pp"> ' . $char_data[CHAR_DATA_OFFSET_STR] . '<br /> ' . $char_data[CHAR_DATA_OFFSET_AGI] . '<br /> ' . $char_data[CHAR_DATA_OFFSET_STA] . '<br /> ' . $char_data[CHAR_DATA_OFFSET_INT] . '<br /> ' . $char_data[CHAR_DATA_OFFSET_SPI] . '<br /> ' . $char_data[CHAR_DATA_OFFSET_ARMOR] . ' </div> </td> <td class="half_line" colspan="2" rowspan="3" align="center" width="50%"> <div class="gradient_p"> ' . $lang_item['res_holy'] . ':<br /> ' . $lang_item['res_arcane'] . ':<br /> ' . $lang_item['res_fire'] . ':<br /> ' . $lang_item['res_nature'] . ':<br /> ' . $lang_item['res_frost'] . ':<br /> ' . $lang_item['res_shadow'] . ': </div> <div class="gradient_pp"> ' . $char_data[CHAR_DATA_OFFSET_RES_HOLY] . '<br /> ' . $char_data[CHAR_DATA_OFFSET_RES_ARCANE] . '<br /> ' . $char_data[CHAR_DATA_OFFSET_RES_FIRE] . '<br /> ' . $char_data[CHAR_DATA_OFFSET_RES_NATURE] . '<br /> ' . $char_data[CHAR_DATA_OFFSET_RES_FROST] . '<br /> ' . $char_data[CHAR_DATA_OFFSET_RES_SHADOW] . ' </div> </td> <td width="1%">'; if ($equiped_items[6][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_BELT . '" target="_blank"> <img src="' . $equiped_items[6][1] . '" class="' . $equiped_items[6][2] . '" alt="Belt" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_waist.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> </tr> <tr> <td width="1%">'; if ($equiped_items[3][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_SHOULDER . '" target="_blank"> <img src="' . $equiped_items[3][1] . '" class="' . $equiped_items[3][2] . '" alt="Shoulder" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_shoulder.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> <td width="1%">'; if ($equiped_items[7][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_LEGS . '" target="_blank"> <img src="' . $equiped_items[7][1] . '" class="' . $equiped_items[7][2] . '" alt="Legs" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_legs.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> </tr> <tr> <td width="1%">'; if ($equiped_items[15][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_BACK . '" target="_blank"> <img src="' . $equiped_items[15][1] . '" class="' . $equiped_items[15][2] . '" alt="Back" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_chest_back.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> <td width="1%">'; if ($equiped_items[8][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_FEET . '" target="_blank"> <img src="' . $equiped_items[8][1] . '" class="' . $equiped_items[8][2] . '" alt="Feet" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_feet.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> </tr> <tr> <td width="1%">'; if ($equiped_items[5][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_CHEST . '" target="_blank"> <img src="' . $equiped_items[5][1] . '" class="' . $equiped_items[5][2] . '" alt="Chest" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_chest_back.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> <td class="half_line" colspan="2" rowspan="2" align="center" width="50%"> <div class="gradient_p"> ' . $lang_char['melee_d'] . ':<br /> ' . $lang_char['melee_ap'] . ':<br /> ' . $lang_char['melee_hit'] . ':<br /> ' . $lang_char['melee_crit'] . ':<br /> ' . $lang_char['expertise'] . ':<br /> </div> <div class="gradient_pp"> ' . $mindamage . '-' . $maxdamage . '<br /> ' . ($char_data[CHAR_DATA_OFFSET_AP] + $char_data[CHAR_DATA_OFFSET_AP_MOD]) . '<br /> ' . $char_data[CHAR_DATA_OFFSET_MELEE_HIT] . '<br /> ' . $crit . '%<br /> ' . $expertise . '<br /> </div> </td> <td class="half_line" colspan="2" rowspan="2" align="center" width="50%"> <div class="gradient_p"> ' . $lang_char['spell_d'] . ':<br /> ' . $lang_char['spell_heal'] . ':<br /> ' . $lang_char['spell_hit'] . ':<br /> ' . $lang_char['spell_crit'] . ':<br /> ' . $lang_char['spell_haste'] . ' </div> <div class="gradient_pp"> ' . $spell_damage . '<br /> ' . $char_data[CHAR_DATA_OFFSET_SPELL_HEAL] . '<br /> ' . $char_data[CHAR_DATA_OFFSET_SPELL_HIT] . '<br /> ' . $spell_crit . '%<br /> ' . $char_data[CHAR_DATA_OFFSET_SPELL_HASTE_RATING] . ' </div> </td> <td width="1%">'; if ($equiped_items[11][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_FINGER1 . '" target="_blank"> <img src="' . $equiped_items[11][1] . '" class="' . $equiped_items[11][2] . '" alt="Finger1" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_finger.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> </tr> <tr> <td width="1%">'; if ($equiped_items[4][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_SHIRT . '" target="_blank"> <img src="' . $equiped_items[4][1] . '" class="' . $equiped_items[4][2] . '" alt="Shirt" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_shirt.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> <td width="1%">'; if ($equiped_items[12][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_FINGER2 . '" target="_blank"> <img src="' . $equiped_items[12][1] . '" class="' . $equiped_items[12][2] . '" alt="Finger2" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_finger.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> </tr> <tr> <td width="1%">'; if ($equiped_items[19][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_TABARD . '" target="_blank"> <img src="' . $equiped_items[19][1] . '" class="' . $equiped_items[19][2] . '" alt="Tabard" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_tabard.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> <td class="half_line" colspan="2" rowspan="2" align="center" width="50%"> <div class="gradient_p"> ' . $lang_char['dodge'] . ':<br /> ' . $lang_char['parry'] . ':<br /> ' . $lang_char['block'] . ':<br /> ' . $lang_char['resilience'] . ':<br /> </div> <div class="gradient_pp"> ' . $dodge . '%<br /> ' . $parry . '%<br /> ' . $block . '%<br /> ' . $char_data[CHAR_DATA_OFFSET_RESILIENCE] . '<br /> </div> </td> <td class="half_line" colspan="2" rowspan="2" align="center" width="50%"> <div class="gradient_p"> ' . $lang_char['ranged_d'] . ':<br /> ' . $lang_char['ranged_ap'] . ':<br /> ' . $lang_char['ranged_hit'] . ':<br /> ' . $lang_char['ranged_crit'] . ':<br /> </div> <div class="gradient_pp"> ' . $minrangeddamage . '-' . $maxrangeddamage . '<br /> ' . ($char_data[CHAR_DATA_OFFSET_RANGED_AP] + $char_data[CHAR_DATA_OFFSET_RANGED_AP_MOD]) . '<br /> ' . $char_data[CHAR_DATA_OFFSET_RANGE_HIT] . '<br /> ' . $ranged_crit . '%<br /> </div> </td> <td width="1%">'; if ($equiped_items[13][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_TRINKET1 . '" target="_blank"> <img src="' . $equiped_items[13][1] . '" class="' . $equiped_items[13][2] . '" alt="Trinket1" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_trinket.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> </tr> <tr> <td width="1%">'; if ($equiped_items[9][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_WRIST . '" target="_blank"> <img src="' . $equiped_items[9][1] . '" class="' . $equiped_items[9][2] . '" alt="Wrist" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_wrist.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> <td width="1%">'; if ($equiped_items[14][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_TRINKET2 . '" target="_blank"> <img src="' . $equiped_items[14][1] . '" class="' . $equiped_items[14][2] . '" alt="Trinket2" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_trinket.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> </tr> <tr> <td></td> <td width="15%">'; if ($equiped_items[16][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_MAIN_HAND . '" target="_blank"> <img src="' . $equiped_items[16][1] . '" class="' . $equiped_items[16][2] . '" alt="MainHand" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_main_hand.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> <td width="15%">'; if ($equiped_items[17][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_OFF_HAND . '" target="_blank"> <img src="' . $equiped_items[17][1] . '" class="' . $equiped_items[17][2] . '" alt="OffHand" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_off_hand.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> <td width="15%">'; if ($equiped_items[18][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_RANGED . '" target="_blank"> <img src="' . $equiped_items[18][1] . '" class="' . $equiped_items[18][2] . '" alt="Ranged" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_ranged.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> <td width="15%"></td> <td></td> </tr>'; if ($user_lvl > $owner_gmlvl || $owner_name === $user_name) { //total time played $tot_time = $char['totaltime']; $tot_days = (int) ($tot_time / 86400); $tot_time = $tot_time - $tot_days * 86400; $total_hours = (int) ($tot_time / 3600); $tot_time = $tot_time - $total_hours * 3600; $total_min = (int) ($tot_time / 60); $output .= ' <tr> <td colspan="6"> ' . $lang_char['tot_paly_time'] . ': ' . $tot_days . ' ' . $lang_char['days'] . ' ' . $total_hours . ' ' . $lang_char['hours'] . ' ' . $total_min . ' ' . $lang_char['min'] . ' </td> </tr>'; } $output .= ' </table> </div> <br /> </div> <br /> <table class="hidden"> <tr> <td>'; // button to user account page, user account page has own security makebutton($lang_char['chars_acc'], 'user.php?action=edit_user&id=' . $owner_acc_id . '', 130); $output .= ' </td> <td>'; // only higher level GM with delete access can edit character // character edit allows removal of character items, so delete permission is needed if ($user_lvl > $owner_gmlvl && $user_lvl >= $action_permission['delete']) { makebutton($lang_char['edit_button'], 'char_edit.php?id=' . $id . '&realm=' . $realmid . '', 130); $output .= ' </td> <td>'; } // only higher level GM with delete access, or character owner can delete character if ($user_lvl > $owner_gmlvl && $user_lvl >= $action_permission['delete'] || $owner_name === $user_name) { makebutton($lang_char['del_char'], 'char_list.php?action=del_char_form&check%5B%5D=' . $id . '" type="wrn', 130); $output .= ' </td> <td>'; } // only GM with update permission can send mail, mail can send items, so update permission is needed if ($user_lvl >= $action_permission['update']) { makebutton($lang_char['send_mail'], 'mail.php?type=ingame_mail&to=' . $char['name'] . '', 130); $output .= ' </td> <td>'; } makebutton($lang_global['back'], 'javascript:window.history.back()" type="def', 130); $output .= ' </td> </tr> </table> <br /> </center> <!-- end of char.php -->'; } else { error($lang_char['no_permission']); } } else { error($lang_char['no_char_found']); } }
function char_skill(&$sqlr, &$sqlc) { global $lang_global, $lang_char, $output, $realm_id, $realm_db, $characters_db, $mmfpm_db, $action_permission, $user_lvl, $user_name, $skill_datasite; // this page uses wowhead tooltops wowhead_tt(); //==========================$_GET and SECURE================================= // id and multi realm security to prevent sql injection require_once './include/char/include/char_multi_realm_security.php'; $order_by = isset($_GET['order_by']) ? $sqlc->quote_smart($_GET['order_by']) : 1; $dir = isset($_GET['dir']) ? $sqlc->quote_smart($_GET['dir']) : 1; if (preg_match('/^[01]{1}$/', $dir)) { } else { $dir = 1; } $order_dir = $dir ? 'ASC' : 'DESC'; $dir = $dir ? 0 : 1; //==========================$_GET and SECURE end============================= // getting character data from database $result = $sqlc->query(' SELECT account, name, race, class, gender, level FROM characters WHERE guid = ' . $id . ' LIMIT 1'); // no point going further if character does not exist if ($sqlc->num_rows($result)) { $char = $sqlc->fetch_assoc($result); // we get user permissions first $owner_acc_id = $sqlc->result($result, 0, 'account'); $result = $sqlr->query(' SELECT gmlevel, username FROM account WHERE id = ' . $char['account'] . ''); $owner_gmlvl = $sqlr->result($result, 0, 'gmlevel'); $owner_name = $sqlr->result($result, 0, 'username'); // check user permission if ($user_lvl > $owner_gmlvl || $owner_name === $user_name) { // character sub header $output .= ' <center> <div id="tab_content"> <h1>' . $lang_char['skills'] . '</h1> <br />'; // character menu tab require_once './include/char/include/char_header.php'; // character info require_once './include/char/include/char_info.php'; //---------------Page Specific Data Starts Here-------------------------- $output .= ' <div id="tab_content2"> <table class="lined" style="width: 700px;"> <tr> <th class="title" colspan="' . ($user_lvl ? '3' : '2') . '" align="left">' . $lang_char['skills'] . '</th> </tr> <tr> ' . ($user_lvl ? '<th><a href="char_skill.php?id=' . $id . '&realm=' . $realmid . '&order_by=0&dir=' . $dir . '"' . ($order_by == 0 ? ' class="' . $order_dir . '"' : '') . '>' . $lang_char['skill_id'] . '</a></th>' : '') . ' <th align="right"><a href="char_skill.php?id=' . $id . '&realm=' . $realmid . '&order_by=1&dir=' . $dir . '"' . ($order_by == 1 ? ' class="' . $order_dir . '"' : '') . '>' . $lang_char['skill_name'] . '</a></th> <th><a href="char_skill.php?id=' . $id . '&realm=' . $realmid . '&order_by=2&dir=' . $dir . '"' . ($order_by == 2 ? ' class="' . $order_dir . '"' : '') . '>' . $lang_char['skill_value'] . '</a></th> </tr>'; $skill_array = array(); $class_array = array(); $prof_1_array = array(); $prof_2_array = array(); $weapon_array = array(); $armor_array = array(); $language_array = array(); $skill_rank_array = array(1 => $lang_char['none'], 350 => $lang_char['none'], 75 => $lang_char['apprentice'], 150 => $lang_char['journeyman'], 225 => $lang_char['expert'], 300 => $lang_char['artisan'], 375 => $lang_char['master'], 450 => $lang_char['grand_master'], 525 => $lang_char['illustrious']); $result = $sqlc->query(' SELECT skill, value, max FROM character_skills WHERE guid = ' . $id . ''); $sqlm = new SQL(); $sqlm->connect($mmfpm_db['addr'], $mmfpm_db['user'], $mmfpm_db['pass'], $mmfpm_db['name']); while ($char_skill = $sqlc->fetch_assoc($result)) { $temp = $char_skill['value']; $skill = $char_skill['skill']; $max = $char_skill['max']; if (skill_get_type($skill, $sqlm) == 6) { array_push($weapon_array, array($user_lvl ? $skill : '', skill_get_name($skill, $sqlm), $temp, $max)); } elseif (skill_get_type($skill, $sqlm) == 7) { array_push($class_array, array($user_lvl ? $skill : '', skill_get_name($skill, $sqlm), $temp, $max)); } elseif (skill_get_type($skill, $sqlm) == 8) { array_push($armor_array, array($user_lvl ? $skill : '', skill_get_name($skill, $sqlm), $temp, $max)); } elseif (skill_get_type($skill, $sqlm) == 9) { array_push($prof_2_array, array($user_lvl ? $skill : '', skill_get_name($skill, $sqlm), $temp, $max)); } elseif (skill_get_type($skill, $sqlm) == 10) { array_push($language_array, array($user_lvl ? $skill : '', skill_get_name($skill, $sqlm), $temp, $max)); } elseif (skill_get_type($skill, $sqlm) == 11) { array_push($prof_1_array, array($user_lvl ? $skill : '', skill_get_name($skill, $sqlm), $temp, $max)); } else { array_push($skill_array, array($user_lvl ? $skill : '', skill_get_name($skill, $sqlm), $temp, $max)); } } unset($char_skill); aasort($skill_array, $order_by, $dir); aasort($class_array, $order_by, $dir); aasort($prof_1_array, $order_by, $dir); aasort($prof_2_array, $order_by, $dir); aasort($weapon_array, $order_by, $dir); aasort($armor_array, $order_by, $dir); aasort($language_array, $order_by, $dir); foreach ($skill_array as $data) { $output .= ' <tr> ' . ($user_lvl ? '<td>' . $data[0] . '</td>' : '') . ' <td align="right">' . $data[1] . '</td> <td valign="center" class="bar skill_bar" style="background-position: ' . (round(450 * $data[2] / $data[3]) - 450) . 'px;"> <span>' . $data[2] . '/' . $data[3] . '</span> </td> </tr>'; } if (count($class_array)) { $output .= ' <tr> <th class="title" colspan="' . ($user_lvl ? '3' : '2') . '" align="left">' . $lang_char['classskills'] . '</th> </tr>'; } foreach ($class_array as $data) { $output .= ' <tr> ' . ($user_lvl ? '<td>' . $data[0] . '</td>' : '') . ' <td align="right"><a href="' . $skill_datasite . '7.' . $char['class'] . '.' . $data[0] . '" target="_blank">' . $data[1] . '</td> <td valign="center" class="bar skill_bar" style="background-position: 0px;"></td> </tr>'; } if (count($prof_1_array)) { $output .= ' <tr> <th class="title" colspan="' . ($user_lvl ? '3' : '2') . '" align="left">' . $lang_char['professions'] . '</th> </tr>'; } foreach ($prof_1_array as $data) { $output .= ' <tr> ' . ($user_lvl ? '<td>' . $data[0] . '</td>' : '') . ' <td align="right"><a href="' . $skill_datasite . '11.' . $data[0] . '" target="_blank">' . $data[1] . '</a></td> <td valign="center" class="bar skill_bar" style="background-position: ' . (round(450 * $data[2] / $data[3]) - 450) . 'px;"> <span>' . $data[2] . '/' . $data[3] . ' (' . $skill_rank_array[$data[3]] . ')</span> </td> </tr>'; } if (count($prof_2_array)) { $output .= ' <tr> <th class="title" colspan="' . ($user_lvl ? '3' : '2') . '" align="left">' . $lang_char['secondaryskills'] . '</th> </tr>'; } foreach ($prof_2_array as $data) { $output .= ' <tr> ' . ($user_lvl ? '<td>' . $data[0] . '</td>' : '') . ' <td align="right"><a href="' . $skill_datasite . '9.' . $data[0] . '" target="_blank">' . $data[1] . '</a></td> <td valign="center" class="bar skill_bar" style="background-position: ' . (round(450 * $data[2] / $data[3]) - 450) . 'px;"> <span>' . $data[2] . '/' . $data[3] . ' (' . $skill_rank_array[$data[3]] . ')</span> </td> </tr>'; } if (count($weapon_array)) { $output .= ' <tr> <th class="title" colspan="' . ($user_lvl ? '3' : '2') . '" align="left">' . $lang_char['weaponskills'] . '</th> </tr>'; } foreach ($weapon_array as $data) { $output .= ' <tr> ' . ($user_lvl ? '<td>' . $data[0] . '</td>' : '') . ' <td align="right">' . $data[1] . '</td> <td valign="center" class="bar skill_bar" style="background-position: ' . (round(450 * $data[2] / $data[3]) - 450) . 'px;"> <span>' . $data[2] . '/' . $data[3] . '</span> </td> </tr>'; } if (count($armor_array)) { $output .= ' <tr> <th class="title" colspan="' . ($user_lvl ? '3' : '2') . '" align="left">' . $lang_char['armorproficiencies'] . '</th> </tr>'; } foreach ($armor_array as $data) { $output .= ' <tr> ' . ($user_lvl ? '<td>' . $data[0] . '</td>' : '') . ' <td align="right">' . $data[1] . '</td> <td valign="center" class="bar skill_bar" style="background-position: 0px;"></td> </tr>'; } if (count($language_array)) { $output .= ' <tr> <th class="title" colspan="' . ($user_lvl ? '3' : '2') . '" align="left">' . $lang_char['languages'] . '</th> </tr>'; } foreach ($language_array as $data) { $output .= ' <tr> ' . ($user_lvl ? '<td>' . $data[0] . '</td>' : '') . ' <td align="right">' . $data[1] . '</td> <td valign="center" class="bar skill_bar" style="background-position: ' . (round(450 * $data[2] / $data[3]) - 450) . 'px;"> <span>' . $data[2] . '/' . $data[3] . '</span> </td> </tr>'; } $output .= ' </table> </div> </div> <br />'; //---------------Page Specific Data Ends here---------------------------- // character sub footer require_once './include/char/include/char_ footer.php'; $output .= ' <br /> </center>'; } else { error($lang_char['no_permission']); } } else { error($lang_char['no_char_found']); } }
function edit_char(&$sqlr, &$sqlc, &$sqlm) { global $lang_global, $lang_char, $lang_item, $output, $realm_db, $characters_db, $realm_id, $mmfpm_db, $action_permission, $user_lvl, $item_datasite; // this page uses wowhead tooltops wowhead_tt(); valid_login($action_permission['delete']); if (empty($_GET['id'])) { error($lang_global['empty_fields']); } $sqlm = new SQL(); $sqlm->connect($mmfpm_db['addr'], $mmfpm_db['user'], $mmfpm_db['pass'], $mmfpm_db['name']); $id = $sqlc->quote_smart($_GET['id']); // getting character data from database $result = $sqlc->query("\r\n\t\tSELECT account \r\n\t\tFROM `characters` \r\n\t\tWHERE guid = '{$id}'"); // no point going further if character does not exist if ($sqlc->num_rows($result)) { //resrict by owner's gmlvl $owner_acc_id = $sqlc->result($result, 0, 'account'); $query = $sqlr->query("\r\n\t\t\tSELECT gmlevel, username \r\n\t\t\tFROM account \r\n\t\t\tWHERE id ='{$owner_acc_id}'"); $owner_gmlvl = $sqlr->result($query, 0, 'gmlevel'); $owner_name = $sqlr->result($query, 0, 'username'); $owner_check = $sqlr->result($query, 0, 'username'); if ($user_lvl >= $owner_gmlvl) { $result = $sqlc->query("\r\n\t\t\t\tSELECT c.guid, c.account, c.name, c.race, c.class, c.level, c.gender, c.online, c.money, c.totaltime,\r\n\t\t\t\t\tc.position_x, c.position_y, c.position_z, c.map, c.zone,\r\n\t\t\t\t\tc.totalHonorpoints, c.totalKills, c.arenaPoints, c.equipmentCache,\r\n\t\t\t\t\tCOALESCE(guild_member.guildid,0) AS guildid, COALESCE(guild_member.rank,0) AS grank\r\n\t\t\t\tFROM characters c LEFT JOIN guild_member ON c.guid = guild_member.guid \r\n\t\t\t\tWHERE c.guid = '{$id}'"); $char = $sqlc->fetch_assoc($result); $eq_data = explode(' ', $char['equipmentCache']); if ($char['online']) { $online = "<font class=\"error\">{$lang_char['online']}</font>{$lang_char['edit_offline_only_char']}"; } else { $online = $lang_char['offline']; } if ($char['guildid']) { $query = $sqlc->query("\r\n\t\t\t\t\tSELECT name \r\n\t\t\t\t\tFROM guild \r\n\t\t\t\t\tWHERE guildid ='{$char['guildid']}'"); $guild_name = $sqlc->result($query, 0, 'name'); if ($user_lvl > 0) { $guild_name = "<a href=\"guild.php?action=view_guild&error=3&id={$char['guildid']}\" >{$guild_name}</a>"; } if ($char['grank']) { $guild_rank_query = $sqlc->query("\r\n\t\t\t\t\t\tSELECT rname \r\n\t\t\t\t\t\tFROM guild_rank \r\n\t\t\t\t\t\tWHERE guildid ='{$char['guildid']}' AND rid='{$char['grank']}'"); $guild_rank = $sqlc->result($guild_rank_query, 0, 'rname'); } else { $guild_rank = $lang_char['guild_leader']; } } else { $guild_name = $lang_global['none']; $guild_rank = $lang_global['none']; } $output .= "\r\n <center>\r\n <form method=\"get\" action=\"char_edit.php\" name=\"form\">\r\n <input type=\"hidden\" name=\"action\" value=\"do_edit_char\" />\r\n <input type=\"hidden\" name=\"id\" value=\"{$id}\" />\r\n <table class=\"lined\">\r\n <tr>\r\n <td colspan=\"8\"><font class=\"bold\"><input type=\"text\" name=\"name\" size=\"14\" maxlength=\"12\" value=\"" . $char['name'] . "\" /> - <img src='img/c_icons/" . $char['race'] . "-" . $char['gender'] . ".gif' onmousemove='toolTip(\"" . char_get_race_name($char['race']) . "\",\"item_tooltip\")' onmouseout='toolTip()' alt=\"\" /> <img src='img/c_icons/" . $char['class'] . ".gif' onmousemove='toolTip(\"" . char_get_class_name($char['class']) . "\",\"item_tooltip\")' onmouseout='toolTip()' alt=\"\" /> - lvl " . char_get_level_color($char['level']) . "</font><br />" . $online . "</td>\r\n </tr>\r\n <tr>\r\n <td colspan=\"8\">" . get_map_name($char['online'], $sqlm) . " - " . get_zone_name($char['zone'], $sqlm) . "</td>\r\n </tr>\r\n <tr>\r\n <td colspan=\"8\">{$lang_char['username']}: <input type=\"text\" name=\"owner_name\" size=\"20\" maxlength=\"25\" value=\"{$owner_name}\" /> | {$lang_char['acc_id']}: {$owner_acc_id}</td>\r\n </tr>\r\n <tr>\r\n <td colspan=\"8\">{$lang_char['guild']}: {$guild_name} | {$lang_char['rank']}: {$guild_rank}</td>\r\n </tr>\r\n <tr>\r\n <td colspan=\"8\">{$lang_char['honor_points']}: <input type=\"text\" name=\"honor_points\" size=\"8\" maxlength=\"6\" value=\"{$char['totalHonorpoints']}\" />/\r\n <input type=\"text\" name=\"arena_points\" size=\"8\" maxlength=\"6\" value=\"{$char['arenaPoints']}\" /> - {$lang_char['honor_kills']}: <input type=\"text\" name=\"total_kills\" size=\"8\" maxlength=\"6\" value=\"{$char['totalKills']}\" />\r\n </td>\r\n </tr>\r\n <tr>\r\n <td width=\"2%\"><input type=\"checkbox\" name=\"check[]\" value=\"a0\" /></td><td width=\"18%\">{$lang_item['head']}<br /><a href=\"{$item_datasite}{$eq_data[EQ_DATA_OFFSET_EQU_HEAD]}\" target=\"_blank\">" . get_item_name($eq_data[EQ_DATA_OFFSET_EQU_HEAD]) . "</a></td>\r\n <td width=\"18%\">{$lang_item['gloves']}<br /><a href=\"{$item_datasite}{$eq_data[EQ_DATA_OFFSET_EQU_GLOVES]}\" target=\"_blank\">" . get_item_name($eq_data[EQ_DATA_OFFSET_EQU_GLOVES]) . "</a></td><td width=\"2%\"><input type=\"checkbox\" name=\"check[]\" value=\"a9\" /></td>\r\n </tr>\r\n <tr>\r\n <td><input type=\"checkbox\" name=\"check[]\" value=\"a1\" /></td><td>{$lang_item['neck']}<br /><a href=\"{$item_datasite}{$eq_data[EQ_DATA_OFFSET_EQU_NECK]}\" target=\"_blank\">" . get_item_name($eq_data[EQ_DATA_OFFSET_EQU_NECK]) . "</a></td>\r\n <td>{$lang_item['belt']}<br /><a href=\"{$item_datasite}{$eq_data[EQ_DATA_OFFSET_EQU_BELT]}\" target=\"_blank\">" . get_item_name($eq_data[EQ_DATA_OFFSET_EQU_BELT]) . "</a></td> <td><input type=\"checkbox\" name=\"check[]\" value=\"a5\" /></td>\r\n </tr>\r\n <tr>\r\n <td><input type=\"checkbox\" name=\"check[]\" value=\"a2\" /></td><td>{$lang_item['shoulder']}<br /><a href=\"{$item_datasite}{$eq_data[EQ_DATA_OFFSET_EQU_SHOULDER]}\" target=\"_blank\">" . get_item_name($eq_data[EQ_DATA_OFFSET_EQU_SHOULDER]) . "</a></td>\r\n <td>{$lang_item['legs']}<br /><a href=\"{$item_datasite}{$eq_data[EQ_DATA_OFFSET_EQU_LEGS]}\" target=\"_blank\">" . get_item_name($eq_data[EQ_DATA_OFFSET_EQU_LEGS]) . "</a></td><td><input type=\"checkbox\" name=\"check[]\" value=\"a6\" /></td>\r\n </tr>\r\n <tr>\r\n <td><input type=\"checkbox\" name=\"check[]\" value=\"a14\" /></td><td>{$lang_item['back']}<br /><a href=\"{$item_datasite}{$eq_data[EQ_DATA_OFFSET_EQU_BACK]}\" target=\"_blank\">" . get_item_name($eq_data[EQ_DATA_OFFSET_EQU_BACK]) . "</a></td>\r\n <td>{$lang_item['feet']}<br /><a href=\"{$item_datasite}{$eq_data[EQ_DATA_OFFSET_EQU_FEET]}\" target=\"_blank\">" . get_item_name($eq_data[EQ_DATA_OFFSET_EQU_FEET]) . "</a></td><td><input type=\"checkbox\" name=\"check[]\" value=\"a7\" /></td>\r\n </tr>\r\n <tr>\r\n <td><input type=\"checkbox\" name=\"check[]\" value=\"a4\" /></td><td>{$lang_item['chest']}<br /><a href=\"{$item_datasite}{$eq_data[EQ_DATA_OFFSET_EQU_CHEST]}\" target=\"_blank\">" . get_item_name($eq_data[EQ_DATA_OFFSET_EQU_CHEST]) . "</a></td>\r\n <td>{$lang_item['finger']} 1<br /><a href=\"{$item_datasite}{$eq_data[EQ_DATA_OFFSET_EQU_FINGER1]}\" target=\"_blank\">" . get_item_name($eq_data[EQ_DATA_OFFSET_EQU_FINGER1]) . "</a></td><td><input type=\"checkbox\" name=\"check[]\" value=\"a10\" /></td>\r\n </tr>\r\n <tr>\r\n <td><input type=\"checkbox\" name=\"check[]\" value=\"a3\" /></td><td>{$lang_item['shirt']}<br /><a href=\"{$item_datasite}{$eq_data[EQ_DATA_OFFSET_EQU_SHIRT]}\" target=\"_blank\">" . get_item_name($eq_data[EQ_DATA_OFFSET_EQU_SHIRT]) . "</a></td>\r\n <td>{$lang_item['finger']} 2<br /><a href=\"{$item_datasite}{$eq_data[EQ_DATA_OFFSET_EQU_FINGER2]}\" target=\"_blank\">" . get_item_name($eq_data[EQ_DATA_OFFSET_EQU_FINGER2]) . "</a></td><td><input type=\"checkbox\" name=\"check[]\" value=\"a11\" /></td>\r\n </tr>\r\n <tr>\r\n <td><input type=\"checkbox\" name=\"check[]\" value=\"a18\" /></td><td>{$lang_item['tabard']}<br /><a href=\"{$item_datasite}{$eq_data[EQ_DATA_OFFSET_EQU_TABARD]}\" target=\"_blank\">" . get_item_name($eq_data[EQ_DATA_OFFSET_EQU_TABARD]) . "</a></td>\r\n <td>{$lang_item['trinket']} 1<br /><a href=\"{$item_datasite}{$eq_data[EQ_DATA_OFFSET_EQU_TRINKET1]}\" target=\"_blank\">" . get_item_name($eq_data[EQ_DATA_OFFSET_EQU_TRINKET1]) . "</a></td><td><input type=\"checkbox\" name=\"check[]\" value=\"a12\" /></td>\r\n </tr>\r\n <tr>\r\n <td><input type=\"checkbox\" name=\"check[]\" value=\"a8\" /></td><td>{$lang_item['wrist']}<br /><a href=\"{$item_datasite}{$eq_data[EQ_DATA_OFFSET_EQU_WRIST]}\" target=\"_blank\">" . get_item_name($eq_data[EQ_DATA_OFFSET_EQU_WRIST]) . "</a></td>\r\n <td>{$lang_item['trinket']} 2<br /><a href=\"{$item_datasite}{$eq_data[EQ_DATA_OFFSET_EQU_TRINKET2]}\" target=\"_blank\">" . get_item_name($eq_data[EQ_DATA_OFFSET_EQU_TRINKET2]) . "</a></td><td><input type=\"checkbox\" name=\"check[]\" value=\"a13\" /></td>\r\n </tr>\r\n <tr>\r\n <td><input type=\"checkbox\" name=\"check[]\" value=\"a15\" /></td>\r\n <td colspan=\"2\">{$lang_item['main_hand']}<br /><a href=\"{$item_datasite}{$eq_data[EQ_DATA_OFFSET_EQU_MAIN_HAND]}\" target=\"_blank\">" . get_item_name($eq_data[EQ_DATA_OFFSET_EQU_MAIN_HAND]) . "</a></td>\r\n <td colspan=\"2\"><input type=\"checkbox\" name=\"check[]\" value=\"a16\" /> {$lang_item['off_hand']}<br /><a href=\"{$item_datasite}{$eq_data[EQ_DATA_OFFSET_EQU_OFF_HAND]}\" target=\"_blank\">" . get_item_name($eq_data[EQ_DATA_OFFSET_EQU_OFF_HAND]) . "</a></td>\r\n <td colspan=\"2\">{$lang_item['ranged']}<br /><a href=\"{$item_datasite}{$eq_data[EQ_DATA_OFFSET_EQU_RANGED]}\" target=\"_blank\">" . get_item_name($eq_data[EQ_DATA_OFFSET_EQU_RANGED]) . "</a></td>\r\n <td><input type=\"checkbox\" name=\"check[]\" value=\"a17\" /></td>\r\n </tr>\r\n <tr>\r\n <td colspan=\"4\">{$lang_char['gold']}: <input type=\"text\" name=\"money\" size=\"10\" maxlength=\"8\" value=\"{$char['money']}\" /></td>\r\n <td colspan=\"4\">{$lang_char['tot_paly_time']}: <input type=\"text\" name=\"tot_time\" size=\"8\" maxlength=\"14\" value=\"{$char['totaltime']}\" /></td>\r\n </tr>\r\n <tr>\r\n <td colspan=\"5\">{$lang_char['location']}:\r\n X:<input type=\"text\" name=\"x\" size=\"10\" maxlength=\"8\" value=\"{$char['position_x']}\" />\r\n Y:<input type=\"text\" name=\"y\" size=\"8\" maxlength=\"16\" value=\"{$char['position_y']}\" />\r\n Z:<input type=\"text\" name=\"z\" size=\"8\" maxlength=\"16\" value=\"{$char['position_z']}\" />\r\n Map:<input type=\"text\" name=\"map\" size=\"8\" maxlength=\"16\" value=\"{$char['map']}\" />\r\n </td>\r\n <td colspan=\"3\">{$lang_char['move_to']}:<input type=\"text\" name=\"tp_to\" size=\"24\" maxlength=\"64\" value=\"\" /></td>\r\n </tr>\r\n </table>\r\n <br />"; //inventory+bank items $query2 = $sqlc->query("\r\n\t\t\t\tSELECT bag, slot, item, item_template \r\n\t\t\t\tFROM character_inventory \r\n\t\t\t\tWHERE guid = '{$id}' \r\n\t\t\t\tORDER BY bag, slot"); $inv = array(); $count = 0; while ($slot = $sqlc->fetch_row($query2)) { if ($slot[0] == 0) { if ($slot[1] >= 23 && $slot[1] <= 62) { $count++; $inv[$count][0] = $slot[3]; $inv[$count][1] = $slot[2]; } } else { $count++; $inv[$count][0] = $slot[3]; $inv[$count][1] = $slot[2]; } } $output .= "\r\n <table class=\"lined\">\r\n\t\t\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t\t\t<td>{$lang_char['inv_bank']}</td>\r\n\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t\t\t\t\t<td height=\"100\" align=\"center\">\r\n\t\t\t\t\t\t\t\t\t\t\t<table>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<tr align=\"center\">"; $j = 0; for ($i = 1; $i <= $count; $i++) { $j++; $output .= "\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<td>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"{$item_datasite}{$inv[$i][0]}\" target=\"_blank\">{$inv[$i][0]}</a>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<br />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input type=\"checkbox\" name=\"check[]\" value=\"{$inv[$i][1]}\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</td>"; if ($j == 15) { $output .= "\r\n\t\t\t\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<tr align=\"center\">"; $j = 0; } } $output .= "\r\n </tr>\r\n </table>\r\n </td>\r\n </tr>\r\n </table>\r\n <br />\r\n <table class=\"hidden\">\r\n <tr>\r\n <td>"; makebutton($lang_char['update'], "javascript:do_submit()", 190); makebutton($lang_char['to_char_view'], "char.php?id={$id}", 160); makebutton($lang_char['del_char'], "char_list.php?action=del_char_form&check%5B%5D={$id}", 160); makebutton($lang_global['back'], "javascript:window.history.back()", 160); $output .= "\r\n </td>\r\n </tr>\r\n </table>\r\n <br />\r\n </form>\r\n </center>"; //case of non auth request } else { error($lang_char['no_permission']); } } else { error($lang_char['no_char_found']); } }
function do_insert_update($do_insert) { global $lang_global, $lang_creature, $output, $world_db, $realm_id, $creature_datasite, $item_datasite, $quest_datasite, $lang_id_tab, $spell_datasite, $lang_item, $language, $action_permission, $user_lvl, $locales_search_option; wowhead_tt(); require_once "./scripts/get_lib.php"; require_once 'libs/item_lib.php'; $sql = new SQL(); $sql->connect($world_db[$realm_id]['addr'], $world_db[$realm_id]['user'], $world_db[$realm_id]['pass'], $world_db[$realm_id]['name']); // entry only needed on update if (!$do_insert) { if (!isset($_GET['entry'])) { redirect("creature.php?error=1"); } $entry = is_numeric($_GET['entry']) ? $sql->quote_smart($_GET['entry']) : redirect("creature.php?error=8"); $result = $sql->query("SELECT `entry`, `difficulty_entry_1`, `KillCredit1`, `KillCredit2`, `modelid1`, `modelid2`, `modelid3`, `modelid4`, `name`,`subname`, `IconName`, `minlevel`, `maxlevel`, `faction_A`, `faction_H`, `npcflag`, `speed_walk`, `speed_run`, `scale`, `rank`, `mindmg`, `maxdmg`, `dmgschool`, `attackpower`, `baseattacktime`, `rangeattacktime`, `unit_flags`,`dynamicflags`, `family`, `trainer_type`, `trainer_spell`, `trainer_class`,`trainer_race`,`minrangedmg`, `maxrangedmg`, `rangedattackpower`, `type`,`type_flags`,`lootid`, `pickpocketloot`, `skinloot`, `resistance1`, `resistance2`, `resistance3`, `resistance4`, `resistance5`, `resistance6`, `spell1`, `spell2`, `spell3`, `spell4`, `PetSpellDataId`, `mingold`, `maxgold`, `AIName`, `MovementType`, `InhabitType`, `RacialLeader`, `RegenHealth`, `equipment_id`, `mechanic_immune_mask`, `flags_extra`, `ScriptName` FROM creature_template WHERE entry = '{$entry}'"); } else { // get new free id $result = $sql->query("SELECT max(entry)+1 as newentry from creature_template"); $entry = $sql->result($result, 0, 'newentry'); $result = $sql->query("SELECT {$entry} as `entry`, 0 as `difficulty_entry_1`, 0 as `KillCredit1`, 0 as `KillCredit2`, 0 as `modelid1`, 0 as `modelid2`, 0 as `modelid3`, 0 as `modelid4`, 'new creature' as `name`,'' as `subname`, '' as `IconName`, 1 as `minlevel`, 1 as `maxlevel`, 0 as `faction_A`, 0 as `faction_H`, 0 as `npcflag`, 1 as `speed`, 1 as `scale`,0 as `rank`, 1 as `mindmg`, 1 as `maxdmg`, 0 as `dmgschool`, 0 as `attackpower`, 2000 as `baseattacktime`, 0 as `rangeattacktime`, 0 as `unit_flags`,0 as `dynamicflags`, 0 as `family`, 0 as `trainer_type`, 0 as `trainer_spell`, 0 as `trainer_class`,0 as `trainer_race`,0 as `minrangedmg`, 0 as `maxrangedmg`, 0 as `rangedattackpower`, 0 as `type`,0 as `type_flags`,0 as `lootid`, 0 as `pickpocketloot`, 0 as `skinloot`, 0 as `resistance1`, 0 as `resistance2`, 0 as `resistance3`, 0 as `resistance4`, 0 as `resistance5`, 0 as `resistance6`, 0 as`spell1`, 0 as`spell2`, 0 as `spell3`, 0 as `spell4`, 0 as `PetSpellDataId`, 100 as `mingold`, 250 as `maxgold`, '' as `AIName`, 0 as `MovementType`, 1 as `InhabitType`, 0 as `RacialLeader`, 1 as `RegenHealth`, 0 as `equipment_id`, 0 as `mechanic_immune_mask`, 0 as `flags_extra`, '' as `ScriptName`"); // use id for new creature_template } if ($mob = $sql->fetch_assoc($result)) { $output .= "\r\n <script type=\"text/javascript\" src=\"libs/js/tab.js\"></script>\r\n <center>\r\n <br /><br /><br />\r\n <form method=\"post\" action=\"creature.php?action=do_update\" name=\"form1\">\r\n <input type=\"hidden\" name=\"backup_op\" value=\"0\"/>\r\n <input type=\"hidden\" name=\"entry\" value=\"{$entry}\"/>\r\n <input type=\"hidden\" name=\"insert\" value=\"{$do_insert}\"/>\r\n <div class=\"jtab-container\" id=\"container\">\r\n <ul class=\"jtabs\">\r\n <li><a href=\"#\" onclick=\"return showPane('pane1', this)\" id=\"tab1\">{$lang_creature['general']}</a></li>\r\n <li><a href=\"#\" onclick=\"return showPane('pane3', this)\">{$lang_creature['stats']}</a></li>\r\n <li><a href=\"#\" onclick=\"return showPane('pane4', this)\">{$lang_creature['models']}</a></li>\r\n <li><a href=\"#\" onclick=\"return showPane('pane2', this)\">{$lang_creature['additional']}</a></li>"; $quest_flag = 0; $vendor_flag = 0; $trainer_flag = 0; if (!$mob['npcflag']) { $output .= ""; } else { if ($mob['npcflag'] & 1) { $output .= ""; } //gossip if ($mob['npcflag'] & 2) { $quest_flag = 1; $output .= "\r\n <li><a href=\"#\" onclick=\"return showPane('pane6', this)\">{$lang_creature['quests']}</a></li>"; } if ($mob['npcflag'] & 4) { $vendor_flag = 1; $output .= "\r\n <li><a href=\"#\" onclick=\"return showPane('pane7', this)\">{$lang_creature['vendor']}</a></li>"; } if ($mob['npcflag'] & 16) { $trainer_flag = 1; $output .= "\r\n <li><a href=\"#\" onclick=\"return showPane('pane8', this)\">{$lang_creature['trainer']}</a></li>"; } } if ($mob['npcflag'] & 128) { $vendor_flag = 1; $output .= "\r\n <li><a href=\"#\" onclick=\"return showPane('pane7', this)\">{$lang_creature['vendor']}</a></li>"; } if ($mob['npcflag'] & 16384) { $vendor_flag = 1; $output .= "\r\n <li><a href=\"#\" onclick=\"return showPane('pane7', this)\">{$lang_creature['vendor']}</a></li>"; } if ($mob['lootid']) { $output .= "\r\n <li><a href=\"#\" onclick=\"return showPane('pane5', this)\">{$lang_creature['loot']}</a></li>"; } if ($mob['skinloot']) { $output .= "\r\n <li><a href=\"#\" onclick=\"return showPane('pane9', this)\">{$lang_creature['skin_loot']}</a></li>"; } if ($mob['pickpocketloot']) { $output .= "\r\n <li><a href=\"#\" onclick=\"return showPane('pane10', this)\">{$lang_creature['pickpocket_loot']}</a></li>"; } if ($locales_search_option != 0) { $output .= "\r\n <li><a href=\"#\" onclick=\"return showPane('pane11', this)\">{$lang_creature['locales']}</a></li>"; } $output .= "\r\n </ul>\r\n <div class=\"jtab-panes\">\r\n <div id=\"pane1\">\r\n <br /><br />\r\n <table class=\"lined\" style=\"width: 720px;\">\r\n <tr class=\"large_bold\"><td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_creature['general']}:</td></tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['entry'], $lang_creature['entry_desc']) . "</td>\r\n <td>\r\n <a href=\"{$creature_datasite}{$entry}\" target=\"_blank\">{$entry}</a>\r\n </td>\r\n <td>" . makeinfocell($lang_creature['name'], $lang_creature['name_desc']) . "</td>\r\n <td colspan=\"3\">\r\n <input type=\"text\" name=\"name\" size=\"50\" maxlength=\"100\" value=\"{$mob['name']}\" />\r\n </td>\r\n </tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['sub_name'], $lang_creature['sub_name_desc']) . "</td>\r\n <td colspan=\"2\">\r\n <input type=\"text\" name=\"subname\" size=\"25\" maxlength=\"100\" value=\"{$mob['subname']}\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['script_name'], $lang_creature['script_name_desc']) . "</td>\r\n <td colspan=\"2\">\r\n <input type=\"text\" name=\"ScriptName\" size=\"25\" maxlength=\"128\" value=\"{$mob['ScriptName']}\" />\r\n </td>\r\n </tr>\r\n <tr class=\"large_bold\">\r\n <td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_creature['basic_status']}:</td>\r\n </tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['heroic'], $lang_creature['heroic_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"difficulty_entry_1\" size=\"8\" maxlength=\"3\" value=\"{$mob['difficulty_entry_1']}\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['min_level'], $lang_creature['min_level_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"minlevel\" size=\"8\" maxlength=\"3\" value=\"{$mob['minlevel']}\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['max_level'], $lang_creature['max_level_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"maxlevel\" size=\"8\" maxlength=\"3\" value=\"{$mob['maxlevel']}\" />\r\n </td>\r\n </tr>\r\n <tr>\r\n <td> </td>\r\n <td>\r\n \r\n </td>\r\n <td> </td>\r\n <td>\r\n \r\n </td>"; if ($mob['RegenHealth']) { $RegenHealth = "checked"; } else { $RegenHealth = ""; } $output .= "\r\n <td>" . makeinfocell($lang_creature['RegenHealth'], $lang_creature['RegenHealth']) . "</td>\r\n <td>\r\n <input type=\"checkbox\" name=\"RegenHealth\" value=\"1\" {$RegenHealth} />\r\n </td>\r\n </tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['faction_A'], $lang_creature['faction_A_desc']) . "</td>\r\n <td colspan=\"2\">\r\n <input type=\"text\" name=\"faction_A\" size=\"14\" maxlength=\"10\" value=\"{$mob['faction_A']}\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['faction_H'], $lang_creature['faction_H_desc']) . "</td>\r\n <td colspan=\"2\">\r\n <input type=\"text\" name=\"faction_H\" size=\"14\" maxlength=\"10\" value=\"{$mob['faction_H']}\" />\r\n </td>\r\n </tr>\r\n <tr>"; $rank = array(0 => "", 1 => "", 3 => "", 2 => "", 4 => ""); $rank[$mob['rank']] = " selected=\"selected\" "; $output .= "\r\n <td >" . makeinfocell($lang_creature['rank'], $lang_creature['rank_desc']) . "</td>\r\n <td>\r\n <select name=\"rank\">\r\n <option value=\"0\" {$rank[0]}>0 - {$lang_creature['normal']}</option>\r\n <option value=\"1\" {$rank[1]}>1 - {$lang_creature['elite']}</option>\r\n <option value=\"2\" {$rank[2]}>2 - {$lang_creature['rare_elite']}</option>\r\n <option value=\"3\" {$rank[3]}>3 - {$lang_creature['world_boss']}</option>\r\n <option value=\"4\" {$rank[4]}>4 - {$lang_creature['rare']}</option>\r\n </select>\r\n </td>"; unset($rank); $type = array(0 => "", 1 => "", 2 => "", 3 => "", 4 => "", 5 => "", 6 => "", 7 => "", 8 => "", 9 => "", 10 => ""); $type[$mob['type']] = " selected=\"selected\" "; $output .= "\r\n <td colspan=\"2\">" . makeinfocell($lang_creature['type'], $lang_creature['type_desc']) . "</td>\r\n <td colspan=\"2\">\r\n <select name=\"type\">\r\n <option value=\"0\" {$type[0]}>0 - {$lang_creature['other']}</option>\r\n <option value=\"1\" {$type[1]}>1 - {$lang_creature['beast']}</option>\r\n <option value=\"2\" {$type[2]}>2 - {$lang_creature['dragonkin']}</option>\r\n <option value=\"3\" {$type[3]}>3 - {$lang_creature['demon']}</option>\r\n <option value=\"4\" {$type[4]}>4 - {$lang_creature['elemental']}</option>\r\n <option value=\"5\" {$type[5]}>5 - {$lang_creature['giant']}</option>\r\n <option value=\"6\" {$type[6]}>6 - {$lang_creature['undead']}</option>\r\n <option value=\"7\" {$type[7]}>7 - {$lang_creature['humanoid']}</option>\r\n <option value=\"8\" {$type[8]}>8 - {$lang_creature['critter']}</option>\r\n <option value=\"9\" {$type[9]}>9 - {$lang_creature['mechanical']}</option>\r\n <option value=\"10\" {$type[10]}>10 - {$lang_creature['not_specified']}</option>\r\n </select>\r\n </td>\r\n </tr>\r\n <tr>"; unset($type); $npcflag = array(0 => "", 1 => "", 2 => "", 4 => "", 8 => "", 16 => "", 32 => "", 64 => "", 128 => "", 256 => "", 512 => "", 1024 => "", 2048 => "", 4096 => "", 8192 => "", 16384 => "", 65536 => "", 131072 => "", 262144 => "", 524288 => "", 1048576 => "", 2097152 => "", 4194304 => "", 268435456 => ""); if ($mob['npcflag'] == 0) { $npcflag[0] = " selected=\"selected\" "; } else { if ($mob['npcflag'] & 1) { $npcflag[1] = " selected=\"selected\" "; } if ($mob['npcflag'] & 2) { $npcflag[2] = " selected=\"selected\" "; } if ($mob['npcflag'] & 4) { $npcflag[4] = " selected=\"selected\" "; } if ($mob['npcflag'] & 8) { $npcflag[8] = " selected=\"selected\" "; } if ($mob['npcflag'] & 16) { $npcflag[16] = " selected=\"selected\" "; } if ($mob['npcflag'] & 32) { $npcflag[32] = " selected=\"selected\" "; } if ($mob['npcflag'] & 64) { $npcflag[64] = " selected=\"selected\" "; } if ($mob['npcflag'] & 128) { $npcflag[128] = " selected=\"selected\" "; } if ($mob['npcflag'] & 256) { $npcflag[256] = " selected=\"selected\" "; } if ($mob['npcflag'] & 512) { $npcflag[512] = " selected=\"selected\" "; } if ($mob['npcflag'] & 1024) { $npcflag[1024] = " selected=\"selected\" "; } if ($mob['npcflag'] & 2048) { $npcflag[2048] = " selected=\"selected\" "; } if ($mob['npcflag'] & 4096) { $npcflag[4096] = " selected=\"selected\" "; } if ($mob['npcflag'] & 8192) { $npcflag[8192] = " selected=\"selected\" "; } if ($mob['npcflag'] & 16384) { $npcflag[16384] = " selected=\"selected\" "; } if ($mob['npcflag'] & 65536) { $npcflag[65536] = " selected=\"selected\" "; } if ($mob['npcflag'] & 131072) { $npcflag[131072] = " selected=\"selected\" "; } if ($mob['npcflag'] & 262144) { $npcflag[262144] = " selected=\"selected\" "; } if ($mob['npcflag'] & 524288) { $npcflag[524288] = " selected=\"selected\" "; } if ($mob['npcflag'] & 1048576) { $npcflag[1048576] = " selected=\"selected\" "; } if ($mob['npcflag'] & 2097152) { $npcflag[2097152] = " selected=\"selected\" "; } if ($mob['npcflag'] & 4194304) { $npcflag[4194304] = " selected=\"selected\" "; } if ($mob['npcflag'] & 268435456) { $npcflag[268435456] = " selected=\"selected\" "; } } $output .= "\r\n <td rowspan=\"2\">" . makeinfocell($lang_creature['npc_flag'], $lang_creature['npc_flag_desc']) . "</td>\r\n <td colspan=\"2\" rowspan=\"2\">\r\n <select multiple=\"multiple\" name=\"npcflag[]\" size=\"3\">\r\n <option value=\"0\" {$npcflag[0]}>{$lang_creature['none']}</option>\r\n <option value=\"1\" {$npcflag[1]}>{$lang_creature['gossip']}</option>\r\n <option value=\"2\" {$npcflag[2]}>{$lang_creature['quest_giver']}</option>\r\n <option value=\"4\" {$npcflag[4]}>{$lang_creature['vendor']}</option>\r\n <option value=\"8\" {$npcflag[8]}>{$lang_creature['taxi']}</option>\r\n <option value=\"16\" {$npcflag[16]}>{$lang_creature['trainer']}</option>\r\n <option value=\"32\" {$npcflag[32]}>{$lang_creature['spirit_healer']}</option>\r\n <option value=\"64\" {$npcflag[64]}>{$lang_creature['guard']}</option>\r\n <option value=\"128\" {$npcflag[128]}>{$lang_creature['inn_keeper']}</option>\r\n <option value=\"256\" {$npcflag[256]}>{$lang_creature['banker']}</option>\r\n <option value=\"512\" {$npcflag[512]}>{$lang_creature['retitioner']}</option>\r\n <option value=\"1024\" {$npcflag[1024]}>{$lang_creature['tabard_vendor']}</option>\r\n <option value=\"2048\" {$npcflag[2048]}>{$lang_creature['battlemaster']}</option>\r\n <option value=\"4096\" {$npcflag[4096]}>{$lang_creature['auctioneer']}</option>\r\n <option value=\"8192\" {$npcflag[8192]}>{$lang_creature['stable_master']}</option>\r\n <option value=\"16384\" {$npcflag[16384]}>{$lang_creature['armorer']}</option>\r\n </select>\r\n </td>"; unset($npcflag); $trainer_type = array(0 => "", 1 => "", 2 => "", 3 => ""); $trainer_type[$mob['trainer_type']] = " selected=\"selected\" "; $output .= "\r\n <td>" . makeinfocell($lang_creature['trainer_type'], $lang_creature['trainer_type_desc']) . "</td>\r\n <td colspan=\"2\">\r\n <select name=\"trainer_type\">\r\n <option value=\"0\" {$trainer_type[0]}>0 - {$lang_creature['class']}</option>\r\n <option value=\"1\" {$trainer_type[1]}>1 - {$lang_creature['mounts']}</option>\r\n <option value=\"2\" {$trainer_type[2]}>2 - {$lang_creature['trade_skill']}</option>\r\n <option value=\"3\" {$trainer_type[3]}>3 - {$lang_creature['pets']}</option>\r\n </select>\r\n </td>\r\n </tr>\r\n <tr>"; unset($trainer_type); $family = array(0 => "", 1 => "", 2 => "", 3 => "", 4 => "", 5 => "", 6 => "", 7 => "", 8 => "", 9 => "", 11 => "", 12 => "", 13 => "", 14 => "", 15 => "", 16 => "", 17 => "", 18 => "", 19 => "", 20 => "", 21 => "", 22 => "", 23 => "", 24 => "", 25 => "", 26 => "", 27 => ""); $family[$mob['family']] = " selected=\"selected\" "; $output .= "\r\n <td>" . makeinfocell($lang_creature['family'], $lang_creature['family_desc']) . "</td>\r\n <td colspan=\"2\">\r\n <select name=\"family\">\r\n <option value=\"0\" {$family[0]}>0 - {$lang_creature['other']}</option>\r\n <option value=\"1\" {$family[1]}>1 - {$lang_creature['wolf']}</option>\r\n <option value=\"2\" {$family[2]}>2 - {$lang_creature['cat']}</option>\r\n <option value=\"3\" {$family[3]}>3 - {$lang_creature['spider']}</option>\r\n <option value=\"4\" {$family[4]}>4 - {$lang_creature['bear']}</option>\r\n <option value=\"5\" {$family[5]}>5 - {$lang_creature['boar']}</option>\r\n <option value=\"6\" {$family[6]}>6 - {$lang_creature['crocolisk']}</option>\r\n <option value=\"7\" {$family[7]}>7 - {$lang_creature['carrion_bird']}</option>\r\n <option value=\"8\" {$family[8]}>8 - {$lang_creature['crab']}</option>\r\n <option value=\"9\" {$family[9]}>9 - {$lang_creature['gorilla']}</option>\r\n <option value=\"11\" {$family[11]}>11 - {$lang_creature['raptor']}</option>\r\n <option value=\"12\" {$family[12]}>12 - {$lang_creature['tallstrider']}</option>\r\n <option value=\"13\" {$family[13]}>13 - {$lang_creature['other']}</option>\r\n <option value=\"14\" {$family[14]}>14 - {$lang_creature['other']}</option>\r\n <option value=\"15\" {$family[15]}>15 - {$lang_creature['felhunter']}</option>\r\n <option value=\"16\" {$family[16]}>16 - {$lang_creature['voidwalker']}</option>\r\n <option value=\"17\" {$family[17]}>17 - {$lang_creature['succubus']}</option>\r\n <option value=\"18\" {$family[18]}>18 - {$lang_creature['other']}</option>\r\n <option value=\"19\" {$family[19]}>19 - {$lang_creature['doomguard']}</option>\r\n <option value=\"20\" {$family[20]}>20 - {$lang_creature['scorpid']}</option>\r\n <option value=\"21\" {$family[21]}>21 - {$lang_creature['turtle']}</option>\r\n <option value=\"22\" {$family[22]}>22 - {$lang_creature['scorpid']}</option>\r\n <option value=\"23\" {$family[23]}>23 - {$lang_creature['imp']}</option>\r\n <option value=\"24\" {$family[24]}>24 - {$lang_creature['bat']}</option>\r\n <option value=\"25\" {$family[25]}>25 - {$lang_creature['hyena']}</option>\r\n <option value=\"26\" {$family[26]}>26 - {$lang_creature['owl']}</option>\r\n <option value=\"27\" {$family[27]}>27 - {$lang_creature['wind_serpent']}</option>\r\n </select>\r\n </td>\r\n </tr>\r\n <tr class=\"large_bold\">\r\n <td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_creature['loot']}:</td>\r\n </tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['loot_id'], $lang_creature['loot_id_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"lootid\" size=\"10\" maxlength=\"10\" value=\"{$mob['lootid']}\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['skin_loot'], $lang_creature['skin_loot_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"skinloot\" size=\"10\" maxlength=\"10\" value=\"{$mob['skinloot']}\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['pickpocket_loot'], $lang_creature['pickpocket_loot_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"pickpocketloot\" size=\"10\" maxlength=\"10\" value=\"{$mob['pickpocketloot']}\" />\r\n </td>\r\n </tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['min_gold'], $lang_creature['min_gold_desc']) . "</td>\r\n <td colspan=\"2\">\r\n <input type=\"text\" name=\"mingold\" size=\"14\" maxlength=\"30\" value=\"{$mob['mingold']}\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['max_gold'], $lang_creature['max_gold_desc']) . "</td>\r\n <td colspan=\"2\">\r\n <input type=\"text\" name=\"maxgold\" size=\"14\" maxlength=\"30\" value=\"{$mob['maxgold']}\" />\r\n </td>\r\n </tr>"; unset($family); $result1 = $sql->query("SELECT COUNT(*) FROM creature WHERE id = '{$mob['entry']}'"); $output .= "\r\n <tr>\r\n <td colspan=\"6\">{$lang_creature['creature_swapned']} : " . $sql->result($result1, 0) . " {$lang_creature['times']}.</td>\r\n </tr>\r\n </table>\r\n <br /><br />\r\n </div>\r\n <div id=\"pane3\">\r\n <br /><br />\r\n <table class=\"lined\" style=\"width: 720px;\">\r\n <tr class=\"large_bold\">\r\n <td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_creature['basic_status']}:</td>\r\n </tr>\r\n <tr>\r\n <td> </td>\r\n <td colspan=\"2\">\r\n \r\n </td>\r\n <td>" . makeinfocell($lang_creature['speed'], $lang_creature['speed_desc']) . "</td>\r\n <td colspan=\"2\">\r\n <input type=\"text\" name=\"speed_walk\" size=\"8\" maxlength=\"45\" value=\"{$mob['speed_walk']}\" />\r\n </td>\r\n </tr>\r\n <tr class=\"large_bold\">\r\n <td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_creature['damage']}:</td>\r\n </tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['min_damage'], $lang_creature['min_damage_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"mindmg\" size=\"8\" maxlength=\"45\" value=\"{$mob['mindmg']}\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['max_damage'], $lang_creature['max_damage_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"maxdmg\" size=\"8\" maxlength=\"45\" value=\"{$mob['maxdmg']}\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['attack_power'], $lang_creature['attack_power_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"attackpower\" size=\"8\" maxlength=\"10\" value=\"{$mob['attackpower']}\" />\r\n </td>\r\n </tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['min_range_dmg'], $lang_creature['min_range_dmg_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"minrangedmg\" size=\"8\" maxlength=\"45\" value=\"{$mob['minrangedmg']}\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['max_range_dmg'], $lang_creature['max_range_dmg_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"maxrangedmg\" size=\"8\" maxlength=\"45\" value=\"{$mob['maxrangedmg']}\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['ranged_attack_power'], $lang_creature['ranged_attack_power_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"rangedattackpower\" size=\"8\" maxlength=\"10\" value=\"{$mob['rangedattackpower']}\" />\r\n </td>\r\n </tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['attack_time'], $lang_creature['attack_time_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"baseattacktime\" size=\"8\" maxlength=\"4\" value=\"{$mob['baseattacktime']}\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['range_attack_time'], $lang_creature['range_attack_time_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"rangeattacktime\" size=\"8\" maxlength=\"4\" value=\"{$mob['rangeattacktime']}\" />\r\n </td>\r\n <td></td>\r\n <td></td>\r\n </tr>\r\n <tr>\r\n <td></td>\r\n <td colspan=\"2\"></td>"; $dmgschool = array(0 => "", 1 => "", 2 => "", 3 => "", 4 => "", 5 => "", 6 => ""); $dmgschool[$mob['dmgschool']] = " selected=\"selected\" "; $output .= "\r\n <td>" . makeinfocell($lang_creature['dmgschool'], $lang_creature['dmgschool_desc']) . "</td>\r\n <td colspan=\"2\">\r\n <select name=\"dmgschool\">\r\n <option value=\"0\" {$dmgschool[0]}>0: {$lang_item['physical_dmg']}</option>\r\n <option value=\"1\" {$dmgschool[1]}>1: {$lang_item['holy_dmg']}</option>\r\n <option value=\"2\" {$dmgschool[2]}>2: {$lang_item['fire_dmg']}</option>\r\n <option value=\"3\" {$dmgschool[3]}>3: {$lang_item['nature_dmg']}</option>\r\n <option value=\"4\" {$dmgschool[4]}>4: {$lang_item['frost_dmg']}</option>\r\n <option value=\"5\" {$dmgschool[5]}>5: {$lang_item['shadow_dmg']}</option>\r\n <option value=\"6\" {$dmgschool[6]}>6: {$lang_item['arcane_dmg']}</option>\r\n </select>\r\n </td>"; unset($dmgschool); $output .= "\r\n </tr>\r\n <tr class=\"large_bold\">\r\n <td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_creature['spells']}:</td>\r\n </tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['spell'] . " 1", $lang_creature['spell_desc']) . "</td>\r\n <td colspan=\"2\">\r\n <input type=\"text\" name=\"spell1\" size=\"14\" maxlength=\"11\" value=\"{$mob['spell1']}\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['spell'] . " 2", $lang_creature['spell_desc']) . "</td>\r\n <td colspan=\"2\">\r\n <input type=\"text\" name=\"spell2\" size=\"14\" maxlength=\"11\" value=\"{$mob['spell2']}\" />\r\n </td>\r\n </tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['spell'] . " 3", $lang_creature['spell_desc']) . "</td>\r\n <td colspan=\"2\">\r\n <input type=\"text\" name=\"spell3\" size=\"14\" maxlength=\"11\" value=\"{$mob['spell3']}\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['spell'] . " 4", $lang_creature['spell_desc']) . "</td>\r\n <td colspan=\"2\">\r\n <input type=\"text\" name=\"spell4\" size=\"14\" maxlength=\"11\" value=\"{$mob['spell4']}\" />\r\n </td>\r\n </tr>\r\n <tr class=\"large_bold\">\r\n <td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_creature['resistances']}:</td>\r\n </tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['resis_holy'], $lang_creature['resis_holy_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"resistance1\" size=\"8\" maxlength=\"10\" value=\"{$mob['resistance1']}\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['resis_fire'], $lang_creature['resis_fire_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"resistance2\" size=\"8\" maxlength=\"10\" value=\"{$mob['resistance2']}\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['resis_nature'], $lang_creature['resis_nature_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"resistance3\" size=\"8\" maxlength=\"10\" value=\"{$mob['resistance3']}\" />\r\n </td>\r\n </tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['resis_frost'], $lang_creature['resis_frost_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"resistance4\" size=\"8\" maxlength=\"10\" value=\"{$mob['resistance4']}\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['resis_shadow'], $lang_creature['resis_shadow_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"resistance5\" size=\"8\" maxlength=\"10\" value=\"{$mob['resistance5']}\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['resis_arcane'], $lang_creature['resis_arcane_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"resistance6\" size=\"8\" maxlength=\"10\" value=\"{$mob['resistance6']}\" />\r\n </td>\r\n </tr>\r\n </table>\r\n <br /><br />\r\n </div>\r\n <div id=\"pane4\">\r\n <br /><br />\r\n <table class=\"lined\" style=\"width: 720px;\">\r\n <tr class=\"large_bold\">\r\n <td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_creature['models']}:</td>\r\n </tr>\r\n <tr>\r\n <td colspan=\"2\">" . makeinfocell($lang_creature['modelid_A'], $lang_creature['modelid_A_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"modelid1\" size=\"8\" maxlength=\"11\" value=\"{$mob['modelid1']}\" />\r\n </td>\r\n <td colspan=\"2\">" . makeinfocell($lang_creature['modelid_A2'], $lang_creature['modelid_A2_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"modelid2\" size=\"8\" maxlength=\"11\" value=\"{$mob['modelid2']}\" />\r\n </td>\r\n </tr>\r\n <tr>\r\n <td colspan=\"2\">" . makeinfocell($lang_creature['modelid_H'], $lang_creature['modelid_H_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"modelid3\" size=\"8\" maxlength=\"11\" value=\"{$mob['modelid3']}\" />\r\n </td>\r\n <td colspan=\"2\">" . makeinfocell($lang_creature['modelid_H2'], $lang_creature['modelid_H2_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"modelid4\" size=\"8\" maxlength=\"11\" value=\"{$mob['modelid4']}\" />\r\n </td>\r\n </tr>\r\n </table>\r\n <br /><br />"; $result1 = $sql->query("SELECT * FROM creature_equip_template WHERE entry = '{$mob['equipment_id']}'"); if ($mobequip = $sql->fetch_assoc($result1)) { $output .= "\r\n <br /><br />\r\n <table class=\"lined\" style=\"width: 720px;\">\r\n <tr class=\"large_bold\">\r\n <td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_creature['equipment']}:</td>\r\n </tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['equip_slot'] . " 1", $lang_creature['equip_slot1_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"equipslot1\" size=\"8\" maxlength=\"10\" value=\"{$mobequip['equipentry1']}\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['equip_slot'] . " 2", $lang_creature['equip_slot2_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"equipslot2\" size=\"8\" maxlength=\"10\" value=\"{$mobequip['equipentry2']}\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['equip_slot'] . " 3", $lang_creature['equip_slot3_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"equipslot3\" size=\"8\" maxlength=\"10\" value=\"{$mobequip['equipentry3']}\" />\r\n </td>\r\n </tr>\r\n </table>\r\n <br /><br />\r\n </div>"; } else { $output .= "\r\n <br /><br />\r\n <table class=\"lined\" style=\"width: 720px;\">\r\n <tr class=\"large_bold\"><td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_creature['equipment']}:</td></tr>\r\n </table>\r\n <br /><br />\r\n </div>"; } $output .= "\r\n <div id=\"pane2\">\r\n <br /><br />\r\n <table class=\"lined\" style=\"width: 720px;\">\r\n <tr class=\"large_bold\">\r\n <td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_creature['scripts']}:</td>\r\n </tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['ai_name'], $lang_creature['ai_name_desc']) . "</td>\r\n <td colspan=\"2\">\r\n <input type=\"text\" name=\"AIName\" size=\"14\" maxlength=\"128\" value=\"{$mob['AIName']}\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['movement_type'], $lang_creature['movement_type_desc']) . "</td>\r\n <td colspan=\"2\">\r\n <input type=\"text\" name=\"MovementType\" size=\"14\" maxlength=\"24\" value=\"{$mob['MovementType']}\" />\r\n </td>\r\n </tr>\r\n <tr class=\"large_bold\">\r\n <td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_creature['other']}:</td>\r\n </tr>"; $trainer_class = array(0 => "", 1 => "", 2 => "", 3 => "", 4 => "", 5 => "", 7 => "", 8 => "", 9 => "", 11 => ""); $trainer_class[$mob['trainer_class']] = " selected=\"selected\" "; $output .= "\r\n <td>" . makeinfocell($lang_creature['class'], $lang_creature['class_desc']) . "</td>\r\n <td>\r\n <select name=\"class\">\r\n <option value=\"0\" {$trainer_class[0]}>0 - {$lang_creature['none']}</option>\r\n <option value=\"1\" {$trainer_class[1]}>1 - {$lang_id_tab['warrior']}</option>\r\n <option value=\"2\" {$trainer_class[2]}>2 - {$lang_id_tab['paladin']}</option>\r\n <option value=\"3\" {$trainer_class[3]}>3 - {$lang_id_tab['hunter']}</option>\r\n <option value=\"4\" {$trainer_class[4]}>4 - {$lang_id_tab['rogue']}</option>\r\n <option value=\"5\" {$trainer_class[5]}>5 - {$lang_id_tab['priest']}</option>\r\n <option value=\"7\" {$trainer_class[7]}>7 - {$lang_id_tab['shaman']}</option>\r\n <option value=\"8\" {$trainer_class[8]}>8 - {$lang_id_tab['mage']}</option>\r\n <option value=\"9\" {$trainer_class[9]}>9 - {$lang_id_tab['warlock']}</option>\r\n <option value=\"11\" {$trainer_class[11]}>11 - {$lang_id_tab['druid']}</option>\r\n </select>\r\n </td>"; unset($trainer_class); $trainer_race = array(0 => "", 1 => "", 2 => "", 3 => "", 4 => "", 5 => "", 6 => "", 7 => "", 8 => "", 10 => "", 11 => ""); $trainer_race[$mob['trainer_race']] = " selected=\"selected\" "; $output .= "\r\n <td>" . makeinfocell($lang_creature['race'], $lang_creature['race_desc']) . "</td>\r\n <td>\r\n <select name=\"race\">\r\n <option value=\"0\" {$trainer_race[0]}>0 - {$lang_creature['none']}</option>\r\n <option value=\"1\" {$trainer_race[1]}>1 - {$lang_id_tab['human']}</option>\r\n <option value=\"2\" {$trainer_race[2]}>2 - {$lang_id_tab['orc']}</option>\r\n <option value=\"3\" {$trainer_race[3]}>3 - {$lang_id_tab['dwarf']}</option>\r\n <option value=\"4\" {$trainer_race[4]}>4 - {$lang_id_tab['nightelf']}</option>\r\n <option value=\"5\" {$trainer_race[5]}>5 - {$lang_id_tab['undead']}</option>\r\n <option value=\"6\" {$trainer_race[6]}>6 - {$lang_id_tab['tauren']}</option>\r\n <option value=\"7\" {$trainer_race[7]}>7 - {$lang_id_tab['gnome']}</option>\r\n <option value=\"8\" {$trainer_race[8]}>8 - {$lang_id_tab['troll']}</option>\r\n <option value=\"10\" {$trainer_race[10]}>10 - {$lang_id_tab['bloodelf']}</option>\r\n <option value=\"11\" {$trainer_race[11]}>11 - {$lang_id_tab['draenei']}</option>\r\n </select>\r\n </td>"; if ($mob['RacialLeader']) { $RacialLeader = "checked"; } else { $RacialLeader = ""; } $output .= "\r\n <td>" . makeinfocell($lang_creature['RacialLeader'], $lang_creature['RacialLeader_desc']) . "</td>\r\n <td>\r\n <input type=\"checkbox\" name=\"RacialLeader\" value=\"1\" {$RacialLeader} />\r\n </td>\r\n </tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['trainer_spell'], $lang_creature['trainer_spell_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"trainer_spell\" size=\"14\" maxlength=\"11\" value=\"{$mob['trainer_spell']}\" />\r\n </td>"; unset($trainer_race); $InhabitType = array(0 => "", 1 => "", 2 => "", 3 => ""); $InhabitType[$mob['InhabitType']] = " selected=\"selected\" "; $output .= "\r\n <td>" . makeinfocell($lang_creature['inhabit_type'], $lang_creature['inhabit_type_desc']) . "</td>\r\n <td>\r\n <select name=\"InhabitType\">\r\n <option value=\"0\" {$InhabitType[0]}>0 - {$lang_creature['none']}</option>\r\n <option value=\"1\" {$InhabitType[1]}>1 - {$lang_creature['walk']}</option>\r\n <option value=\"2\" {$InhabitType[2]}>2 - {$lang_creature['swim']}</option>\r\n <option value=\"3\" {$InhabitType[3]}>3 - {$lang_creature['both']}</option>\r\n </select>\r\n </td>"; unset($InhabitType); $output .= "\r\n <td>" . makeinfocell($lang_creature['flags_extra'], $lang_creature['flags_extra_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"flags_extra\" size=\"8\" maxlength=\"11\" value=\"{$mob['flags_extra']}\" />\r\n </td>\r\n </tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['unit_flags'], $lang_creature['flags_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"unit_flags\" size=\"8\" maxlength=\"11\" value=\"{$mob['unit_flags']}\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['dynamic_flags'], $lang_creature['dynamic_flags_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"dynamicflags\" size=\"8\" maxlength=\"11\" value=\"{$mob['dynamicflags']}\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['flag_1'], $lang_creature['flag_1_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"type_flags\" size=\"8\" maxlength=\"11\" value=\"{$mob['type_flags']}\" />\r\n </td>\r\n </tr>\r\n </table>\r\n <br /><br />\r\n </div>"; /***************** / LOCALES *****************/ if ($locales_search_option != 0) { if ($do_insert) { $result_loc = $sql->query("SELECT '' as `name_loc1`, '' as `name_loc2`, '' as `name_loc3`, '' as `name_loc4`, '' as `name_loc5`, '' as `name_loc6`, '' as `name_loc7`, '' as `name_loc8`, '' as `subname_loc1`, '' as `subname_loc2`, '' as `subname_loc3`, '' as `subname_loc4`, '' as `subname_loc5`, '' as `subname_loc6`, '' as `subname_loc7`, '' as `subname_loc8`"); } else { // update $result_loc = $sql->query("SELECT `name_loc1`, `name_loc2`, `name_loc3`, `name_loc4`, `name_loc5`, `name_loc6`, `name_loc7`, `name_loc8`, `subname_loc1`, `subname_loc2`, `subname_loc3`, `subname_loc4`, `subname_loc5`, `subname_loc6`, `subname_loc7`, `subname_loc8` FROM `locales_creature` WHERE `entry` = '{$entry}'"); } $loc = $sql->fetch_assoc($result_loc); $output .= "\r\n <div id=\"pane11\">\r\n <br /><br />\r\n <table class=\"lined\" style=\"width: 720px;\">\r\n <tr class=\"large_bold\">\r\n <td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_global['language_1']}:</td>\r\n </tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['name'], $lang_creature['name_desc']) . "</td>\r\n <td colspan=\"2\">\r\n <input type=\"text\" name=\"name_loc1\" size=\"24\" maxlength=\"128\" value=\"{$loc['name_loc1']}\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['sub_name'], $lang_creature['sub_name_desc']) . "</td>\r\n <td colspan=\"2\">\r\n <input type=\"text\" name=\"subname_loc1\" size=\"24\" maxlength=\"64\" value=\"{$loc['subname_loc1']}\" />\r\n </td>\r\n </tr>\r\n <tr class=\"large_bold\">\r\n <td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_global['language_2']}:</td>\r\n </tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['name'], $lang_creature['name_desc']) . "</td>\r\n <td colspan=\"2\">\r\n <input type=\"text\" name=\"name_loc2\" size=\"24\" maxlength=\"64\" value=\"{$loc['name_loc2']}\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['sub_name'], $lang_creature['sub_name_desc']) . "</td>\r\n <td colspan=\"2\">\r\n <input type=\"text\" name=\"subname_loc2\" size=\"24\" maxlength=\"64\" value=\"{$loc['subname_loc2']}\" />\r\n </td>\r\n </tr>\r\n <tr class=\"large_bold\">\r\n <td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_global['language_3']}:</td>\r\n </tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['name'], $lang_creature['name_desc']) . "</td>\r\n <td colspan=\"2\">\r\n <input type=\"text\" name=\"name_loc3\" size=\"24\" maxlength=\"64\" value=\"{$loc['name_loc3']}\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['sub_name'], $lang_creature['sub_name_desc']) . "</td>\r\n <td colspan=\"2\">\r\n <input type=\"text\" name=\"subname_loc3\" size=\"24\" maxlength=\"64\" value=\"{$loc['subname_loc3']}\" />\r\n </td>\r\n </tr>\r\n <tr class=\"large_bold\">\r\n <td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_global['language_4']}:</td>\r\n </tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['name'], $lang_creature['name_desc']) . "</td>\r\n <td colspan=\"2\">\r\n <input type=\"text\" name=\"name_loc4\" size=\"24\" maxlength=\"64\" value=\"{$loc['name_loc4']}\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['sub_name'], $lang_creature['sub_name_desc']) . "</td>\r\n <td colspan=\"2\">\r\n <input type=\"text\" name=\"subname_loc4\" size=\"24\" maxlength=\"64\" value=\"{$loc['subname_loc4']}\" />\r\n </td>\r\n </tr>\r\n <tr class=\"large_bold\">\r\n <td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_global['language_5']}:</td>\r\n </tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['name'], $lang_creature['name_desc']) . "</td>\r\n <td colspan=\"2\">\r\n <input type=\"text\" name=\"name_loc5\" size=\"24\" maxlength=\"64\" value=\"{$loc['name_loc5']}\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['sub_name'], $lang_creature['sub_name_desc']) . "</td>\r\n <td colspan=\"2\">\r\n <input type=\"text\" name=\"subname_loc5\" size=\"24\" maxlength=\"64\" value=\"{$loc['subname_loc5']}\" />\r\n </td>\r\n </tr>\r\n <tr class=\"large_bold\">\r\n <td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_global['language_6']}:</td>\r\n </tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['name'], $lang_creature['name_desc']) . "</td>\r\n <td colspan=\"2\">\r\n <input type=\"text\" name=\"name_loc6\" size=\"24\" maxlength=\"64\" value=\"{$loc['name_loc6']}\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['sub_name'], $lang_creature['sub_name_desc']) . "</td>\r\n <td colspan=\"2\">\r\n <input type=\"text\" name=\"subname_loc6\" size=\"24\" maxlength=\"64\" value=\"{$loc['subname_loc6']}\" />\r\n </td>\r\n </tr>\r\n <tr class=\"large_bold\">\r\n <td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_global['language_7']}:</td>\r\n </tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['name'], $lang_creature['name_desc']) . "</td>\r\n <td colspan=\"2\">\r\n <input type=\"text\" name=\"name_loc7\" size=\"24\" maxlength=\"64\" value=\"{$loc['name_loc7']}\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['sub_name'], $lang_creature['sub_name_desc']) . "</td>\r\n <td colspan=\"2\">\r\n <input type=\"text\" name=\"subname_loc7\" size=\"24\" maxlength=\"64\" value=\"{$loc['subname_loc7']}\" />\r\n </td>\r\n </tr>\r\n <tr class=\"large_bold\">\r\n <td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_global['language_8']}:</td>\r\n </tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['name'], $lang_creature['name_desc']) . "</td>\r\n <td colspan=\"2\">\r\n <input type=\"text\" name=\"name_loc8\" size=\"24\" maxlength=\"64\" value=\"{$loc['name_loc8']}\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['sub_name'], $lang_creature['sub_name_desc']) . "</td>\r\n <td colspan=\"2\">\r\n <input type=\"text\" name=\"subname_loc8\" size=\"24\" maxlength=\"64\" value=\"{$loc['subname_loc8']}\" />\r\n </td>\r\n </tr>\r\n </table>\r\n <br /><br />\r\n </div>"; } if ($mob['lootid']) { $output .= "\r\n <div id=\"pane5\">\r\n <br /><br />\r\n <table class=\"lined\" style=\"width: 720px;\">\r\n <tr class=\"large_bold\">\r\n <td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_creature['loot_tmpl_id']}: {$mob['lootid']}</td>\r\n </tr>\r\n <tr>\r\n <td colspan=\"6\">"; $cel_counter = 0; $row_flag = 0; $output .= "\r\n <table class=\"hidden\" align=\"center\">\r\n <tr>"; $result1 = $sql->query("SELECT item,ChanceOrQuestChance,`groupid`,mincountOrRef,maxcount, lootcondition, condition_value1,condition_value2 FROM creature_loot_template WHERE entry = {$mob['lootid']} ORDER BY ChanceOrQuestChance DESC"); while ($item = $sql->fetch_row($result1)) { $cel_counter++; $tooltip = get_item_name($item[0]) . " ({$item['0']})<br />{$lang_creature['drop_chance']}: {$item['1']}%<br />{$lang_creature['quest_drop_chance']}: {$item['2']}%<br />{$lang_creature['drop_chance']}: {$item['3']}-{$item['4']}<br />{$lang_creature['lootcondition']}: {$item['5']}<br />{$lang_creature['condition_value1']}: {$item['6']}<br />{$lang_creature['condition_value2']}: {$item['7']}"; $output .= "\r\n <td>"; $output .= maketooltip("<img src=\"" . get_item_icon($item[0]) . "\" class=\"icon_border\" alt=\"\" />", "{$item_datasite}{$item['0']}", $tooltip, "item_tooltip"); $output .= "\r\n <br /><input type=\"checkbox\" name=\"del_loot_items[]\" value=\"{$item['0']}\" />\r\n </td>"; if ($cel_counter >= 14) { $cel_counter = 0; $output .= "\r\n </tr>\r\n <tr>"; $row_flag++; } } if ($row_flag) { $output .= "\r\n <td colspan=\"" . (16 - $cel_counter) . "\"></td>"; } $output .= "\r\n </tr>\r\n </table>\r\n </td>\r\n </tr>\r\n <tr class=\"large_bold\">\r\n <td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_creature['add_items_to_templ']}:</td>\r\n </tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['loot_item_id'], $lang_creature['loot_item_id_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"item\" size=\"8\" maxlength=\"10\" value=\"\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['loot_drop_chance'], $lang_creature['loot_drop_chance_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"ChanceOrQuestChance\" size=\"8\" maxlength=\"11\" value=\"0\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['loot_quest_drop_chance'], $lang_creature['loot_quest_drop_chance_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"groupid\" size=\"8\" maxlength=\"10\" value=\"0\" />\r\n </td>\r\n </tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['min_count'], $lang_creature['min_count_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"mincountOrRef\" size=\"8\" maxlength=\"3\" value=\"1\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['max_count'], $lang_creature['max_count_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"maxcount\" size=\"8\" maxlength=\"3\" value=\"1\" />\r\n </td>\r\n </tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['lootcondition'], $lang_creature['lootcondition_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"lootcondition\" size=\"8\" maxlength=\"3\" value=\"0\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['condition_value1'], $lang_creature['condition_value1_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"condition_value1\" size=\"8\" maxlength=\"3\" value=\"0\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['condition_value2'], $lang_creature['condition_value2_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"condition_value2\" size=\"8\" maxlength=\"3\" value=\"0\" />\r\n </td>\r\n </tr>\r\n </table>\r\n <br />{$lang_creature['check_to_delete']}<br /><br />\r\n </div>"; } if ($quest_flag) { $output .= "\r\n <div id=\"pane6\">\r\n <br /><br />\r\n <table class=\"lined\" style=\"width: 720px;\">\r\n <tr class=\"large_bold\">\r\n <td colspan=\"2\" class=\"hidden\" align=\"left\">{$lang_creature['start_quests']}:</td>\r\n </tr>"; $deplang = get_lang_id(); $result1 = $sql->query("SELECT quest FROM creature_questrelation WHERE id = {$mob['entry']}"); while ($quest = $sql->fetch_row($result1)) { $query1 = $sql->query("SELECT QuestLevel,IFNULL(" . ($deplang != 0 ? "title_loc{$deplang}" : "NULL") . ",`title`) as title FROM quest_template LEFT JOIN locales_quest ON quest_template.entry = locales_quest.entry WHERE quest_template.entry ='{$quest['0']}'"); $quest_templ = $sql->fetch_row($query1); $output .= "\r\n <tr>\r\n <td width=\"5%\">\r\n <input type=\"checkbox\" name=\"del_questrelation[]\" value=\"{$quest['0']}\" />\r\n </td>\r\n <td width=\"95%\" align=\"left\">\r\n <a class=\"tooltip\" href=\"{$quest_datasite}{$quest['0']}\" target=\"_blank\">({$quest_templ[0]}) {$quest_templ['1']}</a>\r\n </td>\r\n </tr>"; } $output .= "\r\n <tr class=\"large_bold\" align=\"left\">\r\n <td colspan=\"2\" class=\"hidden\">{$lang_creature['add_starts_quests']}:</td>\r\n </tr>\r\n <tr>\r\n <td colspan=\"2\" align=\"left\">" . makeinfocell($lang_creature['quest_id'], $lang_creature['quest_id_desc']) . " :\r\n <input type=\"text\" name=\"questrelation\" size=\"8\" maxlength=\"8\" value=\"\" />\r\n </td>\r\n </tr>\r\n <tr class=\"large_bold\">\r\n <td colspan=\"2\" class=\"hidden\" align=\"left\">{$lang_creature['ends_quests']}:</td>\r\n </tr>"; $result1 = $sql->query("SELECT quest FROM creature_involvedrelation WHERE id = {$mob['entry']}"); while ($quest = $sql->fetch_row($result1)) { $query1 = $sql->query("SELECT QuestLevel,IFNULL(" . ($deplang != 0 ? "title_loc{$deplang}" : "NULL") . ",`title`) as title FROM quest_template LEFT JOIN locales_quest ON quest_template.entry = locales_quest.entry WHERE quest_template.entry ='{$quest['0']}'"); $quest_templ = $sql->fetch_row($query1); $output .= "\r\n <tr>\r\n <td width=\"5%\">\r\n <input type=\"checkbox\" name=\"del_involvedrelation[]\" value=\"{$quest['0']}\" />\r\n </td>\r\n <td width=\"95%\" align=\"left\">\r\n <a class=\"tooltip\" href=\"{$quest_datasite}{$quest['0']}\" target=\"_blank\">({$quest_templ[0]}) {$quest_templ['1']}</a>\r\n </td>\r\n </tr>"; } $output .= "\r\n <tr class=\"large_bold\" align=\"left\">\r\n <td colspan=\"2\" class=\"hidden\">{$lang_creature['add_ends_quests']}:</td>\r\n </tr>\r\n <tr>\r\n <td colspan=\"2\" align=\"left\">" . makeinfocell($lang_creature['quest_id'], $lang_creature['quest_id_desc']) . " :\r\n <input type=\"text\" name=\"involvedrelation\" size=\"8\" maxlength=\"8\" value=\"\" />\r\n </td>\r\n </tr>\r\n </table>\r\n <br />{$lang_creature['check_to_delete']}<br /><br />\r\n </div>"; } if ($vendor_flag) { $output .= "\r\n <div id=\"pane7\">\r\n <br /><br />\r\n <table class=\"lined\" style=\"width: 720px;\">\r\n <tr class=\"large_bold\">\r\n <td colspan=\"8\" class=\"hidden\" align=\"left\">{$lang_creature['sells']}:</td>\r\n </tr>\r\n <tr>\r\n </tr>\r\n <td colspan=\"8\">"; $cel_counter = 0; $row_flag = 0; $output .= "\r\n <table class=\"hidden\" align=\"center\">\r\n <tr>"; $result1 = $sql->query("SELECT item, maxcount, incrtime, ExtendedCost FROM npc_vendor WHERE entry = {$mob['entry']}"); while ($item = $sql->fetch_row($result1)) { $cel_counter++; if (!$item[1]) { $count = "{$lang_creature['unlimited']}"; } else { $count = $item[1]; } $tooltip = get_item_name($item[0]) . "<br />{$lang_creature['count']} : {$count}<br />{$lang_creature['vendor_incrtime']} : {$item['2']}"; $output .= "\r\n <td>"; $output .= maketooltip("<img src=\"" . get_item_icon($item[0]) . "\" class=\"icon_border\" alt=\"\" />", "{$item_datasite}{$item['0']}", $tooltip, "item_tooltip"); $output .= "\r\n <br />\r\n <input type=\"checkbox\" name=\"del_vendor_item[]\" value=\"{$item['0']}\" />\r\n </td>"; if ($cel_counter >= 14) { $cel_counter = 0; $output .= "\r\n </tr>\r\n <tr>"; $row_flag++; } } if ($row_flag) { $output .= "<td colspan=\"" . (16 - $cel_counter) . "\"></td>"; } $output .= "\r\n </tr>\r\n </table>\r\n </td>\r\n </tr>\r\n <tr class=\"large_bold\"><td colspan=\"8\" class=\"hidden\" align=\"left\">{$lang_creature['add_items_to_vendor']}:</td></tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['vendor_item_id'], $lang_creature['vendor_item_id_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"vendor_item\" size=\"8\" maxlength=\"10\" value=\"\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['vendor_max_count'], $lang_creature['vendor_max_count_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"vendor_maxcount\" size=\"8\" maxlength=\"3\" value=\"0\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['vendor_incrtime'], $lang_creature['vendor_incrtime_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"vendor_incrtime\" size=\"8\" maxlength=\"10\" value=\"0\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['vendor_extended_cost'], $lang_creature['vendor_extended_cost_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"vendor_extended_cost\" size=\"8\" maxlength=\"10\" value=\"0\" />\r\n </td>\r\n </tr>\r\n </table><br />{$lang_creature['check_to_delete']}<br /><br />\r\n </div>"; } if ($trainer_flag) { $output .= "\r\n <div id=\"pane8\">\r\n <br /><br />\r\n <table class=\"lined\" style=\"width: 720px;\">\r\n <tr class=\"large_bold\">\r\n <td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_creature['trains']}:</td>\r\n </tr>\r\n <tr>\r\n <td colspan=\"6\">"; $cel_counter = 0; $row_flag = 0; $output .= "\r\n <table class=\"hidden\" align=\"center\">\r\n <tr>"; $result1 = $sql->query("SELECT spell, spellcost, reqskill, reqskillvalue, reqlevel FROM npc_trainer WHERE entry = {$mob['entry']} ORDER BY reqlevel"); while ($spell = $sql->fetch_row($result1)) { $cel_counter++; $tooltip = "{$lang_creature['spell_id']} : {$spell['0']}<br />{$lang_creature['cost']} : {$spell['1']}(c)<br />{$lang_creature['req_skill']} : {$spell['2']}<br />{$lang_creature['req_skill_lvl']} : {$spell['3']}<br />{$lang_creature['req_level']} {$spell['4']}"; $output .= "\r\n <td>"; $output .= maketooltip($spell[0], "{$spell_datasite}{$spell['0']}", $tooltip, "info_tooltip"); $output .= "\r\n <br /><input type=\"checkbox\" name=\"del_trainer_spell[]\" value=\"{$spell['0']}\" />\r\n </td>"; if ($cel_counter >= 16) { $cel_counter = 0; $output .= "\r\n </tr>\r\n <tr>"; $row_flag++; } } if ($row_flag) { $output .= "\r\n <td colspan=\"" . (16 - $cel_counter) . "\"></td>"; } $output .= "\r\n </tr>\r\n </table>\r\n </td>\r\n </tr>\r\n <tr class=\"large_bold\"><td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_creature['add_spell_to_trainer']}:</td></tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['train_spell_id'], $lang_creature['train_spell_id_desc']) . "</td>\r\n <td colspan=\"3\">\r\n <input type=\"text\" name=\"trainer_spell\" size=\"40\" maxlength=\"10\" value=\"\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['train_cost'], $lang_creature['train_cost_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"spellcost\" size=\"8\" maxlength=\"10\" value=\"0\" />\r\n </td>\r\n </tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['req_skill'], $lang_creature['req_skill_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"reqskill\" size=\"8\" maxlength=\"10\" value=\"0\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['req_skill_value'], $lang_creature['req_skill_value_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"reqskillvalue\" size=\"8\" maxlength=\"10\" value=\"0\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['req_level'], $lang_creature['req_level_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"reqlevel\" size=\"8\" maxlength=\"10\" value=\"0\" />\r\n </td>\r\n </tr>\r\n </table>\r\n <br />{$lang_creature['check_to_delete']}<br /><br />\r\n </div>"; } if ($mob['skinloot']) { $output .= "\r\n <div id=\"pane9\">\r\n <br /><br />\r\n <table class=\"lined\" style=\"width: 720px;\">\r\n <tr class=\"large_bold\">\r\n <td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_creature['skinning_loot_tmpl_id']}: {$mob['skinloot']}</td>\r\n </tr>\r\n <tr>\r\n <td colspan=\"6\">"; $cel_counter = 0; $row_flag = 0; $output .= "\r\n <table class=\"hidden\" align=\"center\">\r\n <tr>"; $result1 = $sql->query("SELECT item,ChanceOrQuestChance,`groupid`,mincountOrRef,maxcount, lootcondition, condition_value1, condition_value2 FROM skinning_loot_template WHERE entry = {$mob['skinloot']} ORDER BY ChanceOrQuestChance DESC"); while ($item = $sql->fetch_row($result1)) { $cel_counter++; $tooltip = get_item_name($item[0]) . " ({$item['0']})<br />{$lang_creature['drop_chance']}: {$item['1']}%<br />{$lang_creature['quest_drop_chance']}: {$item['2']}%<br />{$lang_creature['drop_chance']}: {$item['3']}-{$item['4']}<br />{$lang_creature['lootcondition']}: {$item['5']}<br />{$lang_creature['condition_value1']}: {$item['6']}<br />{$lang_creature['condition_value2']}: {$item['7']}"; $output .= "\r\n <td>"; $output .= maketooltip("<img src=\"" . get_item_icon($item[0]) . "\" class=\"icon_border\" alt=\"\" />", "{$item_datasite}{$item['0']}", $tooltip, "item_tooltip"); $output .= "\r\n <br /><input type=\"checkbox\" name=\"del_skin_items[]\" value=\"{$item['0']}\" />\r\n </td>"; if ($cel_counter >= 16) { $cel_counter = 0; $output .= "\r\n </tr>\r\n <tr>"; $row_flag++; } } if ($row_flag) { $output .= "\r\n <td colspan=\"" . (16 - $cel_counter) . "\"></td>"; } $output .= "\r\n </tr>\r\n </table>\r\n </td>\r\n </tr>\r\n <tr class=\"large_bold\"><td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_creature['add_items_to_templ']}:</td></tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['loot_item_id'], $lang_creature['loot_item_id_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"skin_item\" size=\"8\" maxlength=\"10\" value=\"\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['loot_drop_chance'], $lang_creature['loot_drop_chance_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"skin_ChanceOrQuestChance\" size=\"8\" maxlength=\"11\" value=\"0\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['loot_quest_drop_chance'], $lang_creature['loot_quest_drop_chance_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"skin_groupid\" size=\"8\" maxlength=\"10\" value=\"0\" />\r\n </td>\r\n </tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['min_count'], $lang_creature['min_count_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"skin_mincountOrRef\" size=\"8\" maxlength=\"3\" value=\"1\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['max_count'], $lang_creature['max_count_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"skin_maxcount\" size=\"8\" maxlength=\"3\" value=\"1\" />\r\n </td>\r\n </tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['lootcondition'], $lang_creature['lootcondition_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"skin_lootcondition\" size=\"8\" maxlength=\"3\" value=\"0\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['condition_value1'], $lang_creature['condition_value1_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"skin_condition_value1\" size=\"8\" maxlength=\"3\" value=\"0\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['condition_value2'], $lang_creature['condition_value2_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"skin_condition_value2\" size=\"8\" maxlength=\"3\" value=\"0\" />\r\n </td>\r\n </tr>\r\n </table>\r\n <br />{$lang_creature['check_to_delete']}<br /><br />\r\n </div>"; } if ($mob['pickpocketloot']) { $output .= "\r\n <div id=\"pane10\">\r\n <br /><br />\r\n <table class=\"lined\" style=\"width: 720px;\">\r\n <tr class=\"large_bold\">\r\n <td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_creature['pickpocketloot_tmpl_id']}: {$mob['pickpocketloot']}</td>\r\n </tr>\r\n <tr>\r\n <td colspan=\"6\">"; $cel_counter = 0; $row_flag = 0; $output .= "\r\n <table class=\"hidden\" align=\"center\">\r\n <tr>"; $result1 = $sql->query("SELECT item,ChanceOrQuestChance,`groupid`,mincountOrRef,maxcount, lootcondition, condition_value1, condition_value2 FROM pickpocketing_loot_template WHERE entry = {$mob['pickpocketloot']} ORDER BY ChanceOrQuestChance DESC"); while ($item = $sql->fetch_row($result1)) { $cel_counter++; $tooltip = get_item_name($item[0]) . " ({$item['0']})<br />{$lang_creature['drop_chance']}: {$item['1']}%<br />{$lang_creature['quest_drop_chance']}: {$item['2']}%<br />{$lang_creature['drop_chance']}: {$item['3']}-{$item['4']}<br />{$lang_creature['lootcondition']}: {$item['5']}<br />{$lang_creature['condition_value1']}: {$item['6']}<br />{$lang_creature['condition_value2']}: {$item['7']}"; $output .= "\r\n <td>"; $output .= maketooltip("<img src=\"" . get_item_icon($item[0]) . "\" class=\"icon_border\" alt=\"\" />", "{$item_datasite}{$item['0']}", $tooltip, "item_tooltip"); $output .= "\r\n <br /><input type=\"checkbox\" name=\"del_pp_items[]\" value=\"{$item['0']}\" />\r\n </td>"; if ($cel_counter >= 16) { $cel_counter = 0; $output .= "\r\n </tr>\r\n <tr>"; $row_flag++; } } if ($row_flag) { $output .= "<td colspan=\"" . (16 - $cel_counter) . "\"></td>"; } $output .= "\r\n </tr>\r\n </table>\r\n </td>\r\n </tr>\r\n <tr class=\"large_bold\"><td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_creature['add_items_to_templ']}:</td></tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['loot_item_id'], $lang_creature['loot_item_id_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"pp_item\" size=\"8\" maxlength=\"10\" value=\"\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['loot_drop_chance'], $lang_creature['loot_drop_chance_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"pp_ChanceOrQuestChance\" size=\"8\" maxlength=\"11\" value=\"0\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['loot_quest_drop_chance'], $lang_creature['loot_quest_drop_chance_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"pp_groupid\" size=\"8\" maxlength=\"10\" value=\"0\" />\r\n </td>\r\n </tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['min_count'], $lang_creature['min_count_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"pp_mincountOrRef\" size=\"8\" maxlength=\"3\" value=\"1\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['max_count'], $lang_creature['max_count_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"pp_maxcount\" size=\"8\" maxlength=\"3\" value=\"1\" />\r\n </td>\r\n </tr>\r\n <tr>\r\n <td>" . makeinfocell($lang_creature['lootcondition'], $lang_creature['lootcondition_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"pp_lootcondition\" size=\"8\" maxlength=\"3\" value=\"0\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['condition_value1'], $lang_creature['condition_value1_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"pp_condition_value1\" size=\"8\" maxlength=\"3\" value=\"0\" />\r\n </td>\r\n <td>" . makeinfocell($lang_creature['condition_value2'], $lang_creature['condition_value2_desc']) . "</td>\r\n <td>\r\n <input type=\"text\" name=\"pp_condition_value2\" size=\"8\" maxlength=\"3\" value=\"0\" />\r\n </td>\r\n </tr>\r\n </table>\r\n <br />{$lang_creature['check_to_delete']}<br /><br />\r\n </div>"; } $output .= "\r\n </div>\r\n </div>\r\n <br />\r\n </form>\r\n <script type=\"text/javascript\">setupPanes(\"container\", \"tab1\")</script>\r\n <table class=\"hidden\">\r\n <tr>\r\n <td>"; if ($do_insert) { if ($user_lvl >= $action_permission['insert'] && $do_insert) { makebutton($lang_creature['save_to_db'], "javascript:do_submit('form1',0)", 180); } } else { if ($user_lvl >= $action_permission['insert']) { makebutton($lang_creature['save_to_db'], "javascript:do_submit('form1',0)", 180); } if ($user_lvl >= $action_permission['delete']) { makebutton($lang_creature['del_creature'], "creature.php?action=delete&entry={$entry}", 180); } if ($user_lvl >= $action_permission['delete']) { makebutton($lang_creature['del_spawns'], "creature.php?action=delete_spwn&entry={$entry}", 180); } } // scripts/export should be okay without permission check makebutton($lang_creature['save_to_script'], "javascript:do_submit('form1',1)", 180); $output .= "\r\n </td>\r\n </tr>\r\n <tr>\r\n <td>"; makebutton($lang_creature['lookup_creature'], "creature.php", 760); $output .= "\r\n </td>\r\n </tr>\r\n </table>\r\n </center>"; $sql->close(); unset($sql); } else { $sql->close(); unset($sql); error($lang_creature['item_not_found']); exit; } }
function char_pets(&$sqlr, &$sqlc) { global $output, $lang_global, $lang_char, $realm_id, $characters_db, $mmfpm_db, $action_permission, $user_lvl, $user_name, $spell_datasite, $pet_ability; // this page uses wowhead tooltops wowhead_tt(); //==========================$_GET and SECURE================================= // id and multi realm security to prevent sql injection require_once './include/char/include/char_multi_realm_security.php'; //==========================$_GET and SECURE end============================= // getting character data from database $result = $sqlc->query(' SELECT account, name, race, class, gender, level FROM characters WHERE guid = ' . $id . ' LIMIT 1'); // no point going further if character does not exist if ($sqlc->num_rows($result)) { $char = $sqlc->fetch_assoc($result); // we get user permissions first $owner_acc_id = $sqlc->result($result, 0, 'account'); $result = $sqlr->query(' SELECT gmlevel, username FROM account WHERE id = ' . $char['account'] . ''); $owner_gmlvl = $sqlr->result($result, 0, 'gmlevel'); $owner_name = $sqlr->result($result, 0, 'username'); // check user permission if ($user_lvl > $owner_gmlvl || $owner_name === $user_name) { // character sub header $output .= ' <center> <div id="tab_content"> <h1>' . $lang_char['pets'] . '</h1> <br />'; // character menu tab require_once './include/char/include/char_header.php'; // character info require_once './include/char/include/char_info.php'; //---------------Page Specific Data Starts Here-------------------------- $output .= ' <div id="tab_content2">'; $result = $sqlc->query(' SELECT id, level, exp, name, curhappiness FROM character_pet WHERE owner = ' . $id . ''); if ($sqlc->num_rows($result)) { $sqlm = new SQL(); $sqlm->connect($mmfpm_db['addr'], $mmfpm_db['user'], $mmfpm_db['pass'], $mmfpm_db['name']); while ($pet = $sqlc->fetch_assoc($result)) { $happiness = floor($pet['curhappiness'] / 333000); if (1 == $happiness) { $hap_text = 'Content'; $hap_val = 1; } elseif (2 == $happiness) { $hap_text = 'Happy'; $hap_val = 2; } else { $hap_text = 'Unhappy'; $hap_val = 0; } $pet_next_lvl_xp = floor(char_get_xp_to_level($pet['level']) / 4); $output .= ' <font class="bold">' . $pet['name'] . ' - lvl ' . char_get_level_color($pet['level']) . ' <a style="padding:2px;" onmouseover="toolTip(\'' . $hap_text . '\', \'item_tooltip\')" onmouseout="toolTip()"><img src="img/pet/happiness_' . $hap_val . '.jpg" alt="" /></a> <br /><br /> </font> <table class="lined" style="width: 550px;"> <tr> <td align="right">Exp:</td> <td valign="top" class="bar skill_bar" style="background-position: ' . (round(385 * $pet['exp'] / $pet_next_lvl_xp) - 385) . 'px;"> <span>' . $pet['exp'] . '/' . $pet_next_lvl_xp . '</span> </td> </tr> <tr> <td align="right">Pet Abilities:</td> <td align="left">'; // active = 0 is unused and active = 1 probably some passive auras, i dont know diference between values 129 and 193, need to check mangos source $ability_results = $sqlc->query(' SELECT spell FROM pet_spell WHERE guid = ' . $pet['id'] . ' and active > 1'); if ($sqlc->num_rows($ability_results)) { while ($ability = $sqlc->fetch_assoc($ability_results)) { $output .= ' <a style="padding:2px;" href="' . $spell_datasite . $ability['spell'] . '" target="_blank"> <img src="' . spell_get_icon($ability['spell'], $sqlm) . '" alt="' . $ability['spell'] . '" class="icon_border_0" /> </a>'; } } $output .= ' </td> </tr> </table> <br /><br />'; } unset($ability_results); unset($pet_next_lvl_xp); unset($happiness); unset($pet); } $output .= ' </div> </div> <br />'; //---------------Page Specific Data Ends here---------------------------- // character sub footer require_once './include/char/include/char_ footer.php'; $output .= ' <br /> </center>'; } else { error($lang_char['no_permission']); } } else { error($lang_char['no_char_found']); } }
function char_achievements(&$sqlr, &$sqlc) { global $output, $lang_global, $lang_char, $realm_id, $characters_db, $mmfpm_db, $action_permission, $user_lvl, $user_name, $achievement_datasite; // this page uses wowhead tooltops wowhead_tt(); //==========================$_GET and SECURE================================= // id and multi realm security to prevent sql injection require_once './include/char/include/char_multi_realm_security.php'; $show_type = isset($_POST['show_type']) ? $sqlc->quote_smart($_POST['show_type']) : 0; if (is_numeric($show_type)) { } else { $show_type = 0; } //==========================$_GET and SECURE end============================= // getting character data from database $result = $sqlc->query(' SELECT account, name, race, class, level, gender FROM characters WHERE guid = ' . $id . ' LIMIT 1'); // no point going further if character does not exist if ($sqlc->num_rows($result)) { $char = $sqlc->fetch_assoc($result); // we get user permissions first $owner_acc_id = $sqlc->result($result, 0, 'account'); $result = $sqlr->query(' SELECT gmlevel, username FROM account WHERE id = ' . $char['account'] . ''); $owner_gmlvl = $sqlr->result($result, 0, 'gmlevel'); $owner_name = $sqlr->result($result, 0, 'username'); // check user permission if ($user_lvl > $owner_gmlvl || $owner_name === $user_name) { // character sub header $output .= ' <center> <div id="tab_content"> <h1>' . $lang_char['achievements'] . '</h1> <br />'; // character menu tab require_once './include/char/include/char_header.php'; // character info require_once './include/char/include/char_info.php'; //---------------Page Specific Data Starts Here-------------------------- $output .= ' <script type="text/javascript"> function expand(thistag) { var i = 0; %%REPLACE%% if (thistag == \'tsummary\') { document.getElementById(\'tsummary\').style.display="table"; document.getElementById(\'divsummary\').innerHTML = \'[-] ' . $lang_char['summary'] . '\' ; for(x in main_cats) { if(document.getElementById(main_cats[x]).style.display=="table") { document.getElementById(main_cats[x]).style.display="none"; document.getElementById(main_cats_achieve[x]).style.display="none"; document.getElementById(main_cats_div[x]).innerHTML = \'[+] \' + main_cats_name[x]; } } for(x in main_sub_cats) { if(document.getElementById(main_sub_cats_achieve[x]).style.display=="table") { document.getElementById(main_sub_cats_achieve[x]).style.display="none"; document.getElementById(main_sub_cats_div[x]).innerHTML = \'[+] \' + main_sub_cats_name[x]; } } } else { if (document.getElementById(\'tsummary\').style.display="table") { document.getElementById(\'tsummary\').style.display="none"; document.getElementById(\'divsummary\').innerHTML = \'[+] ' . $lang_char['summary'] . '\' ; } for(x in main_cats) { if (main_cats[x] == thistag) { i = 1; } } if (i == 1) { for(x in main_cats) { if (main_cats[x] == thistag) { if(document.getElementById(main_cats[x]).style.display=="table") { document.getElementById(main_cats[x]).style.display="none"; document.getElementById(main_cats_achieve[x]).style.display="none"; document.getElementById(main_cats_div[x]).innerHTML = \'[+] \' + main_cats_name[x]; document.getElementById(\'tsummary\').style.display="table"; document.getElementById(\'divsummary\').innerHTML = \'[-] ' . $lang_char['summary'] . '\' ; } else { document.getElementById(main_cats[x]).style.display="table"; document.getElementById(main_cats_achieve[x]).style.display="table"; document.getElementById(main_cats_div[x]).innerHTML = \'[-] \' + main_cats_name[x]; } } else { if(document.getElementById(main_cats[x]).style.display=="table") { document.getElementById(main_cats[x]).style.display="none"; document.getElementById(main_cats_achieve[x]).style.display="none"; document.getElementById(main_cats_div[x]).innerHTML = \'[+] \' + main_cats_name[x]; } } } for(x in main_sub_cats) { if(document.getElementById(main_sub_cats_achieve[x]).style.display=="table") { document.getElementById(main_sub_cats_achieve[x]).style.display="none"; document.getElementById(main_sub_cats_div[x]).innerHTML = \'[+] \' + main_sub_cats_name[x]; } } } else if (i == 0) { for(x in main_sub_cats) { if (main_sub_cats[x] == thistag) { if(document.getElementById(main_sub_cats_achieve[x]).style.display=="table") { document.getElementById(main_sub_cats_achieve[x]).style.display="none"; document.getElementById(main_sub_cats_div[x]).innerHTML = \'[+] \' + main_sub_cats_name[x]; } else { document.getElementById(main_sub_cats_achieve[x]).style.display="table"; document.getElementById(main_sub_cats_div[x]).innerHTML = \'[-] \' + main_sub_cats_name[x]; } } else { if(document.getElementById(main_sub_cats_achieve[x]).style.display=="table") { document.getElementById(main_sub_cats_achieve[x]).style.display="none"; document.getElementById(main_sub_cats_div[x]).innerHTML = \'[+] \' + main_sub_cats_name[x]; } } } for(x in main_cats) { if(document.getElementById(main_cats_achieve[x]).style.display=="table") { document.getElementById(main_cats_achieve[x]).style.display="none"; } } } } } </script>'; $sqlm = new SQL(); $sqlm->connect($mmfpm_db['addr'], $mmfpm_db['user'], $mmfpm_db['pass'], $mmfpm_db['name']); $output .= ' <div id="tab_content2"> <table class="top_hidden" style="width: 90%;"> <tr> <td width="30%"> </td> %%REPLACE_POINTS%% <td align="right"> <form action="char_achieve.php?id=' . $id . '&realm=' . $realmid . '" method="post" name="form"> ' . $lang_char['show'] . ' : <select name="show_type"> <option value="1"'; if (1 == $show_type) { $output .= ' selected="selected"'; } $output .= ' >' . $lang_char['all'] . ' </option> <option value="0"'; if (0 == $show_type) { $output .= ' selected="selected"'; } $output .= ' >' . $lang_char['earned'] . ' </option> <option value="2"'; if (2 == $show_type) { $output .= ' selected="selected"'; } $output .= ' >' . $lang_char['incomplete'] . ' </option> </select> </form> </td> <td align="right">'; makebutton('View', 'javascript:do_submit()', 130); $output .= ' </td> </tr> </table> <table class="lined" style="width: 90%;"> <tr valign="top"> <td width="30%"> <table class="hidden" style="width: 100%"> <tr> <th align="left"> <div id="divsummary" onclick="expand(\'tsummary\')">[-] ' . $lang_char['summary'] . '</div> </th> </tr> <tr> <td> </td> </tr>'; $result = $sqlc->query(' SELECT achievement, date FROM character_achievement WHERE guid = ' . $id . ''); $char_achieve = array(); while ($temp = $sqlc->fetch_assoc($result)) { $char_achieve[$temp['achievement']] = $temp['date']; } $result = $sqlc->query(' SELECT achievement, date FROM character_achievement WHERE guid = \'' . $id . '\' ORDER BY date DESC LIMIT 4'); $points = 0; $main_cats = achieve_get_main_category($sqlm); $sub_cats = achieve_get_sub_category($sqlm); $output_achieve_main_cat = array(); $output_u_achieve_main_cat = array(); $output_achieve_sub_cat = array(); $output_u_achieve_sub_cat = array(); $js_main_cats = ' var main_cats = new Array(); var main_cats_div = new Array(); var main_cats_name = new Array(); var main_cats_achieve = new Array(); var main_sub_cats = new Array(); var main_sub_cats_div = new Array(); var main_sub_cats_name = new Array(); var main_sub_cats_achieve = new Array();'; foreach ($main_cats as $cat_id => $cat) { if (isset($cat['name01'])) { $i = 0; $output_achieve_main_cat[$cat_id] = ''; $output_u_achieve_main_cat[$cat_id] = ''; $achieve_main_cat = achieve_get_id_category($cat['id'], $sqlm); foreach ($achieve_main_cat as $achieve_id => $cid) { if (isset($achieve_id) && isset($cid['id'])) { if (isset($char_achieve[$cid['id']])) { if (2 > $show_type) { $cid['name01'] = str_replace('&', '&', $cid['name01']); $cid['description01'] = str_replace('&', '&', $cid['description01']); $cid['rewarddesc01'] = str_replace('&', '&', $cid['rewarddesc01']); $output_achieve_main_cat[$cat_id] .= ' <tr> <td width="1%" align="left"> <a href="' . $achievement_datasite . $cid['id'] . '" target="_blank"> <img src="' . achieve_get_icon($cid['id'], $sqlm) . '" width="36" height="36" class="icon_border_0" alt="" /> </a> </td> <td colspan="2" align="left"> <a href="' . $achievement_datasite . $cid['id'] . '" target="_blank">' . $cid['name01'] . '</a><br /> ' . $cid['description01'] . '<br /> ' . $cid['rewarddesc01'] . ' </td> <td width="5%" align="right">' . $cid['rewpoints'] . ' <img src="img/money_achievement.gif" alt="" /></td> <td width="15%" align="right">' . date('o-m-d', $char_achieve[$cid['id']]) . '</td> </tr>'; ++$i; } $points += $cid['rewpoints']; } elseif ($show_type && isset($achieve_id)) { $cid['name01'] = str_replace('&', '&', $cid['name01']); $cid['description01'] = str_replace('&', '&', $cid['description01']); $cid['rewarddesc01'] = str_replace('&', '&', $cid['rewarddesc01']); $output_u_achieve_main_cat[$cat_id] .= ' <tr> <td width="1%" align="left"> <a href="' . $achievement_datasite . $cid['id'] . '" target="_blank"> <span style="opacity:0.2;"> <img src="' . achieve_get_icon($cid['id'], $sqlm) . '" width="36" height="36" class="icon_border_0" alt="" /> </span> </a> </td> <td colspan="2" align="left"> <a href="' . $achievement_datasite . $cid['id'] . '" target="_blank">' . $cid['name01'] . '</a><br /> ' . $cid['description01'] . '<br /> ' . $cid['rewarddesc01'] . ' </td> <td width="5%" align="right">' . $cid['rewpoints'] . ' <img src="img/money_achievement.gif" alt="" /></td> <td width="15%" align="right">' . $lang_char['incomplete'] . '</td> </tr>'; ++$i; } } } unset($achieve_main_cat); $output_achieve_main_cat[$cat_id] = ' <table class="hidden" id="ta' . $cat_id . '" style="width: 100%; display: none;"> <tr> <th colspan="3" align="left">' . $lang_char['achievement_title'] . '</th> <th width="5%">' . $lang_char['achievement_points'] . '</th> <th width="15%">' . $lang_char['achievement_date'] . '</th> </tr>' . $output_achieve_main_cat[$cat_id] . $output_u_achieve_main_cat[$cat_id] . ' </table>'; unset($output_u_achieve_main_cat); $js_main_cats .= ' main_cats_achieve[' . $cat_id . '] = "ta' . $cat_id . '";'; $output_sub_cat = ''; $total_sub_cat = 0; if (isset($sub_cats[$cat['id']])) { $main_sub_cats = $sub_cats[$cat['id']]; foreach ($main_sub_cats as $sub_cat_id => $sub_cat) { if (isset($sub_cat)) { $j = 0; $output_achieve_sub_cat[$sub_cat_id] = ''; $output_u_achieve_sub_cat[$sub_cat_id] = ''; $achieve_sub_cat = achieve_get_id_category($sub_cat_id, $sqlm); foreach ($achieve_sub_cat as $achieve_id => $cid) { if (isset($achieve_id) && isset($cid['id'])) { if (isset($char_achieve[$cid['id']])) { if (2 > $show_type) { $cid['name01'] = str_replace('&', '&', $cid['name01']); $cid['description01'] = str_replace('&', '&', $cid['description01']); $cid['rewarddesc01'] = str_replace('&', '&', $cid['rewarddesc01']); $output_achieve_sub_cat[$sub_cat_id] .= ' <tr> <td width="1%" align="left"> <a href="' . $achievement_datasite . $cid['id'] . '" target="_blank"> <img src="' . achieve_get_icon($cid['id'], $sqlm) . '" width="36" height="36" class="icon_border_0" alt="" /> </a> </td> <td colspan="2" align="left"> <a href="' . $achievement_datasite . $cid['id'] . '" target="_blank">' . $cid['name01'] . '</a><br /> ' . $cid['description01'] . '<br /> ' . $cid['rewarddesc01'] . ' </td> <td width="5%" align="right">' . $cid['rewpoints'] . ' <img src="img/money_achievement.gif" alt="" /></td> <td width="15%" align="right">' . date('o-m-d', $char_achieve[$cid['id']]) . '</td> </tr>'; ++$j; } $points += $cid['rewpoints']; } elseif ($show_type && isset($achieve_id)) { $cid['name01'] = str_replace('&', '&', $cid['name01']); $cid['description01'] = str_replace('&', '&', $cid['description01']); $cid['rewarddesc01'] = str_replace('&', '&', $cid['rewarddesc01']); $output_u_achieve_sub_cat[$sub_cat_id] .= ' <tr> <td width="1%" align="left"> <a href="' . $achievement_datasite . $cid['id'] . '" target="_blank"> <span style="opacity:0.2;"> <img src="' . achieve_get_icon($cid['id'], $sqlm) . '" width="36" height="36" class="icon_border_0" alt="" /> </span> </a> </td> <td colspan="2" align="left"> <a href="' . $achievement_datasite . $cid['id'] . '" target="_blank">' . $cid['name01'] . '</a><br /> ' . $cid['description01'] . '<br /> ' . $cid['rewarddesc01'] . ' </td> <td width="5%" align="right">' . $cid['rewpoints'] . ' <img src="img/money_achievement.gif" alt="" /></td> <td width="15%" align="right">' . $lang_char['incomplete'] . '</td> </tr>'; ++$j; } } } unset($achieve_sub_cat); $total_sub_cat = $total_sub_cat + $j; if ($j) { $sub_cat['name01'] = str_replace('&', '&', $sub_cat['name01']); $output_sub_cat .= ' <tr> <th align="left"> <div id="divs' . $sub_cat_id . '" onclick="expand(\'tsa' . $sub_cat_id . '\');">[+] ' . $sub_cat . ' (' . $j . ')</div> </th> </tr>'; $js_main_cats .= ' main_sub_cats[' . $sub_cat_id . '] = "tsa' . $sub_cat_id . '"; main_sub_cats_div[' . $sub_cat_id . '] = "divs' . $sub_cat_id . '"; main_sub_cats_name[' . $sub_cat_id . '] = "' . $sub_cat . ' (' . $j . ')";'; $output_achieve_sub_cat[$sub_cat_id] = ' <table class="hidden" id="tsa' . $sub_cat_id . '" style="width: 100%; display: none;"> <tr> <th colspan="3" align="left">' . $lang_char['achievement_title'] . '</th> <th width="5%">' . $lang_char['achievement_points'] . '</th> <th width="15%">' . $lang_char['achievement_date'] . '</th> </tr>' . $output_achieve_sub_cat[$sub_cat_id] . $output_u_achieve_sub_cat[$sub_cat_id] . ' </table>'; unset($output_u_achieve_sub_cat); $js_main_cats .= ' main_sub_cats_achieve[' . $sub_cat_id . '] = "tsa' . $sub_cat_id . '";'; } } } unset($main_sub_cats); } if ($total_sub_cat || $i) { $cat['name01'] = str_replace('&', '&', $cat['name01']); $output .= ' <tr> <th align="left"> <div id="div' . $cat_id . '" onclick="expand(\'t' . $cat_id . '\');">[+] ' . $cat['name01'] . ' (' . ($i + $total_sub_cat) . ')</div> </th> </tr> <tr> <td> <table class="hidden" id="t' . $cat_id . '" style="width: 100%; display: none;">' . $output_sub_cat . ' </table> </td> </tr>'; $js_main_cats .= ' main_cats[' . $cat_id . '] = "t' . $cat_id . '"; main_cats_div[' . $cat_id . '] = "div' . $cat_id . '"; main_cats_name[' . $cat_id . '] = "' . $cat['name01'] . ' (' . ($i + $total_sub_cat) . ')";'; } unset($output_sub_cat); } } unset($sub_cats); unset($main_cats); unset($char_achieve); $output = str_replace('%%REPLACE%%', $js_main_cats, $output); unset($js_main_cats); $output = str_replace('%%REPLACE_POINTS%%', ' <td align="right"> ' . $lang_char['achievements'] . ' ' . $lang_char['achievement_points'] . ': ' . $points . ' </td>', $output); unset($point); $output .= ' </table> </td> <td>'; foreach ($output_achieve_main_cat as $temp) { $output .= $temp; } foreach ($output_achieve_sub_cat as $temp) { $output .= $temp; } unset($temp); unset($output_achieve_main_cat); unset($output_achieve_sub_cat); $output .= ' <table class="hidden" id="tsummary" style="width: 100%; display: table;"> <tr> <th colspan="5"> ' . $lang_char['recent'] . ' ' . $lang_char['achievements'] . ' </th> </tr> <tr> <th colspan="3" align="left">' . $lang_char['achievement_title'] . '</th> <th width="5%">' . $lang_char['achievement_points'] . '</th> <th width="15%">' . $lang_char['achievement_date'] . '</th> </tr>'; while ($temp = $sqlc->fetch_assoc($result)) { $cid = achieve_get_details($temp['achievement'], $sqlm); $cid['name01'] = str_replace('&', '&', $cid['name01']); $cid['description01'] = str_replace('&', '&', $cid['description01']); $cid['rewarddesc01'] = str_replace('&', '&', $cid['rewarddesc01']); $output .= ' <tr> <td width="1%" align="left"> <a href="' . $achievement_datasite . $cid['id'] . '" target="_blank"> <img src="' . achieve_get_icon($cid['id'], $sqlm) . '" width="36" height="36" class="icon_border_0" alt="" /> </a> </td> <td colspan="2" align="left"> <a href="' . $achievement_datasite . $cid['id'] . '" target="_blank">' . $cid['name01'] . '</a><br /> ' . $cid['description01'] . '<br /> ' . $cid['rewarddesc01'] . ' </td> <td width="5%" align="right">' . $cid['rewpoints'] . ' <img src="img/money_achievement.gif" alt="" /></td> <td width="15%" align="right">' . date('o-m-d', $temp['date']) . '</td> </tr>'; } unset($cid); unset($temp); unset($result); $output .= ' </table> </td> </tr> </table> </div> <br />'; //---------------Page Specific Data Ends here---------------------------- // character sub footer require_once './include/char/include/char_ footer.php'; $output .= ' <br /> </center>'; } else { error($lang_char['no_permission']); } } else { error($lang_char['no_char_found']); } }
function char_extra(&$sqlr, &$sqlc, &$sqlw) { global $output, $lang_global, $lang_char, $realm_id, $characters_db, $world_db, $action_permission, $user_lvl, $user_name, $item_datasite; // this page uses wowhead tooltops wowhead_tt(); require_once 'core/char/char_security.php'; $result = $sqlc->query('SELECT account, name, race, class, gender, level FROM characters WHERE guid = ' . $id . ' LIMIT 1'); if ($sqlc->num_rows($result)) { $char = $sqlc->fetch_assoc($result); $owner_acc_id = $sqlc->result($result, 0, 'account'); $result = $sqlr->query('SELECT `username`, `gmlevel` FROM `account` LEFT JOIN `account_access` ON `account`.`id`=`account_access`.`id` WHERE `account`.`id` = ' . $owner_acc_id . ' ORDER BY `gmlevel` DESC LIMIT 1'); $owner_name = $sqlr->result($result, 0, 'username'); $owner_gmlvl = $sqlr->result($result, 0, 'gmlevel'); if (empty($owner_gmlvl)) { $owner_gmlvl = 0; } if ($user_lvl > $owner_gmlvl || $owner_name === $user_name) { $output .= ' <center> <div id="tab_content"> <h1>' . $lang_char['extra'] . '</h1> <br />'; require_once 'core/char/char_header.php'; //---------------Page Specific Data Starts Here-------------------------- $output .= ' <br /><br /> <table class="lined" style="width: 450px;"> <tr> <th width="15%">' . $lang_char['icon'] . '</th> <th width="15%">' . $lang_char['quantity'] . '</th> <th width="70%">' . $lang_char['name'] . '</th> </tr>'; $sqlw = new SQL(); $sqlw->connect($world_db[$realm_id]['addr'], $world_db[$realm_id]['user'], $world_db[$realm_id]['pass'], $world_db[$realm_id]['name']); $result = $sqlw->query('SELECT entry, description FROM item_template WHERE BagFamily = 8192'); while ($bag = $sqlw->fetch_assoc($result)) { $result_2 = $sqlc->query('SELECT guid as item, itemEntry FROM item_instance WHERE owner_guid = ' . $id . ' AND itemEntry = ' . $bag['entry'] . ' '); while ($char = $sqlc->fetch_assoc($result_2)) { $result_3 = $sqlc->query('SELECT count AS item FROM item_instance WHERE guid = ' . $char['item'] . ' '); $items = $sqlc->fetch_row($result_3); $output .= ' <tr valign="center"> <td> <a style="padding:2px;" href="' . $item_datasite . $char['itemEntry'] . '" target="_blank"> <img src="' . get_item_icon($char['itemEntry'], $sqlm) . '" alt="' . $char['itemEntry'] . '" class="icon_border_0" /> </a> </td> <td> ' . $items['0'] . ' </td> <td> <span onmousemove="toolTip(\'' . $bag['description'] . '\', \'item_tooltip\')" onmouseout="toolTip()">' . get_item_name($char['itemEntry'], $sqlw) . '</span> </td> </tr>'; } } $output .= ' </table>'; unset($bag); //---------------Page Specific Data Ends Here-------------------------- $output .= ' </div> </div> <br />'; require_once 'core/char/char_footer.php'; $output .= ' <br /> </center>'; } else { error($lang_char['no_permission']); } } else { error($lang_char['no_char_found']); } }
function char_talent() { global $output, $realm_id, $characters_db, $corem_db, $dbc_db, $server, $action_permission, $site_encoding, $user_lvl, $user_name, $base_datasite, $spell_datasite, $sql, $core; // this page uses wowhead tooltops wowhead_tt(); // we need at least an id or we would have nothing to show if (empty($_GET["id"])) { error(lang("global", "empty_fields")); } // this is multi realm support, as of writing still under development // this page is already implementing it if (empty($_GET["realm"])) { $realmid = $realm_id; } else { $realmid = $sql["logon"]->quote_smart($_GET["realm"]); if (is_numeric($realmid)) { $sql["char"]->connect($characters_db[$realmid]["addr"], $characters_db[$realmid]["user"], $characters_db[$realmid]["pass"], $characters_db[$realmid]["name"], $characters_db[$realmid]["encoding"]); } else { $realmid = $realm_id; } } //-------------------SQL Injection Prevention-------------------------------- // no point going further if we don have a valid ID $id = $sql["char"]->quote_smart($_GET["id"]); if (!is_numeric($id)) { error(lang("global", "empty_fields")); } if ($core == 1) { $result = $sql["char"]->query("SELECT acct, name, race, class, level, gender,\n CAST( SUBSTRING_INDEX(SUBSTRING_INDEX(data, ' ', " . (CHAR_DATA_OFFSET_POINTS1 + 1) . "), ' ', -1) AS UNSIGNED) AS talent_points\n FROM characters WHERE guid='" . $id . "' LIMIT 1"); } else { $result = $sql["char"]->query("SELECT account AS acct, name, race, class, level, gender\n FROM characters WHERE guid='" . $id . "' LIMIT 1"); } if ($sql["char"]->num_rows($result)) { $char = $sql["char"]->fetch_assoc($result); //resrict by owner's gmlvl $owner_acc_id = $sql["char"]->result($result, 0, "acct"); if ($core == 1) { $query = $sql["logon"]->query("SELECT login FROM accounts WHERE acct='" . $owner_acc_id . "'"); } else { $query = $sql["logon"]->query("SELECT username as login FROM account WHERE id='" . $owner_acc_id . "'"); } $owner_name = $sql["logon"]->result($query, 0, "login"); $s_query = "SELECT *, SecurityLevel AS gm FROM config_accounts WHERE Login='******'"; $s_result = $sql["mgr"]->query($s_query); $s_fields = $sql["mgr"]->fetch_assoc($s_result); $owner_gmlvl = $s_fields["gm"]; $view_mod = $s_fields["View_Mod_Talent"]; if ($owner_gmlvl >= 1073741824) { $owner_gmlvl -= 1073741824; } // owner configured overrides $view_override = false; if ($view_mod > 0) { if ($view_mod == 1) { } elseif ($view_mod == 2) { // only registered users may view this page if ($user_lvl > -1) { $view_override = true; } } } // visibility overrides for specific tabs $view_inv_override = false; if ($s_fields["View_Mod_Inv"] > 0) { if ($s_fields["View_Mod_Inv"] == 1) { } elseif ($s_fields["View_Mod_Inv"] == 2) { // only registered users may view this tab if ($user_lvl > -1) { $view_inv_override = true; } } } else { if ($user_lvl > $owner_gmlvl || $owner_name === $user_name || $user_lvl == $action_permission["delete"]) { $view_inv_override = true; } } $view_achieve_override = false; if ($s_fields["View_Mod_AcView_Mod_Acieve"] > 0) { if ($s_fields["View_Mod_Achieve"] == 1) { } elseif ($s_fields["View_Mod_Achieve"] == 2) { // only registered users may view this tab if ($user_lvl > -1) { $view_achieve_override = true; } } } else { if ($user_lvl > $owner_gmlvl || $owner_name === $user_name || $user_lvl == $action_permission["delete"]) { $view_achieve_override = true; } } $view_quest_override = false; if ($s_fields["View_Mod_Quest"] > 0) { if ($s_fields["View_Mod_Quest"] == 1) { } elseif ($s_fields["View_Mod_Quest"] == 2) { // only registered users may view this tab if ($user_lvl > -1) { $view_quest_override = true; } } } else { if ($user_lvl > $owner_gmlvl || $owner_name === $user_name || $user_lvl == $action_permission["delete"]) { $view_quest_override = true; } } $view_friends_override = false; if ($s_fields["View_Mod_Friends"] > 0) { if ($s_fields["View_Mod_Friends"] == 1) { } elseif ($s_fields["View_Mod_Friends"] == 2) { // only registered users may view this tab if ($user_lvl > -1) { $view_friends_override = true; } } } else { if ($user_lvl > $owner_gmlvl || $owner_name === $user_name || $user_lvl == $action_permission["delete"]) { $view_friends_override = true; } } $view_view_override = false; if ($s_fields["View_Mod_View"] > 0) { if ($s_fields["View_Mod_View"] == 1) { } elseif ($s_fields["View_Mod_View"] == 2) { // only registered users may view this tab if ($user_lvl > -1) { $view_view_override = true; } } } else { if ($user_lvl > $owner_gmlvl || $owner_name === $user_name || $user_lvl == $action_permission["delete"]) { $view_view_override = true; } } if ($view_override || $user_lvl > $owner_gmlvl || $owner_name === $user_name || $user_lvl == $action_permission["delete"]) { if (strlen($_GET["curspec"]) == 0) { if ($core == 1) { $spec_query = "SELECT currentspec FROM characters WHERE guid='" . $id . "'"; } else { $spec_query = "SELECT activespec AS currentspec FROM characters WHERE guid='" . $id . "'"; } $spec_results = $sql["char"]->query($spec_query); $spec_field = $sql["char"]->fetch_assoc($spec_results); $cur_spec = $spec_field["currentspec"] + 1; if ($cur_spec == 1) { $opp_spec = 2; } else { $opp_spec = 1; } } else { $cur_spec = $_GET["curspec"]; if ($cur_spec == 1) { $opp_spec = 2; } else { $opp_spec = 1; } } if ($core == 1) { // this_is_junk: ArcEmu stores talents in a characters table field in the following format: // [talent id][spell offset],[talent id2][spell offset2],...[talent idN][spell offsetN], // So, we have to explode it into an array, then into a pair of arrays. $result = $sql["char"]->query("SELECT talents" . $cur_spec . " FROM characters WHERE guid='" . $id . "'"); $talent_list = $sql["char"]->result($result, 0); $talent_list = substr($talent_list, 0, strlen($talent_list) - 1); $talent_list = explode(",", $talent_list); $talents = array(); $talent_ranks = array(); $pick = 0; foreach ($talent_list as $t) { if ($pick) { array_push($talent_ranks, $t); $pick = 0; } else { array_push($talents, $t); $pick = 1; } } } elseif ($core == 2) { $query = "SELECT * FROM character_talent\n LEFT JOIN `" . $dbc_db["name"] . "`.talent ON character_talent.talent_id=talent.ID\n WHERE guid='" . $id . "' AND spec='" . ($cur_spec - 1) . "'"; $result = $sql["char"]->query($query); $talents = array(); while ($row = $sql["char"]->fetch_assoc($result)) { $cur_rank = $row["current_rank"] + 1; array_push($talents, $row["Spell" . $cur_rank]); array_push($talent_ranks, 0); } } else { $query = "SELECT * FROM character_talent WHERE guid='" . $id . "' AND spec='" . ($cur_spec - 1) . "'"; $result = $sql["char"]->query($query); $talents = array(); while ($row = $sql["char"]->fetch_assoc($result)) { array_push($talents, $row["spell"]); array_push($talent_ranks, 0); } } $output .= ' <div class="tab"> <ul> <li><a href="char.php?id=' . $id . '&realm=' . $realmid . '">' . lang("char", "char_sheet") . '</a></li>'; if ($view_inv_override) { $output .= ' <li><a href="char_inv.php?id=' . $id . '&realm=' . $realmid . '">' . lang("char", "inventory") . '</a></li>'; } $output .= ' <li class="selected"><a href="char_talent.php?id=' . $id . '&realm=' . $realmid . '">' . lang("char", "talents") . '</a></li>'; if ($view_achieve_override) { $output .= ' <li><a href="char_achieve.php?id=' . $id . '&realm=' . $realmid . '">' . lang("char", "achievements") . '</a></li>'; } if ($view_quest_override) { $output .= ' <li><a href="char_quest.php?id=' . $id . '&realm=' . $realmid . '">' . lang("char", "quests") . '</a></li>'; } if ($view_friends_override) { $output .= ' <li><a href="char_friends.php?id=' . $id . '&realm=' . $realmid . '">' . lang("char", "friends") . '</a></li>'; } if ($view_view_override) { $output .= ' <li><a href="char_view.php?id=' . $id . '&realm=' . $realmid . '">' . lang("char", "view") . '</a></li>'; } $output .= ' </ul> </div> <div class="tab_content center center_text"> <span class="bold">' . htmlentities($char["name"], ENT_COMPAT, $site_encoding) . ' - </span> <img src="img/c_icons/' . $char["race"] . '-' . $char["gender"] . '.gif" onmousemove="oldtoolTip(\'' . char_get_race_name($char["race"]) . '\', \'old_item_tooltip\')" onmouseout="oldtoolTip()" alt="" /> <img src="img/c_icons/' . $char["class"] . '.gif" onmousemove="oldtoolTip(\'' . char_get_class_name($char["class"]) . '\', \'old_item_tooltip\')" onmouseout="oldtoolTip()" alt="" /> <span class="bold"> - ' . lang("char", "level_short") . char_get_level_color($char["level"]) . '</span> <br /> <br />'; if ($cur_spec == 1) { $output .= ' <span class="bold">' . lang("char", "talentspec") . ': ' . $cur_spec . ' <a href="char_talent.php?id=' . $id . '&realm=' . $realm_id . '&curspec=' . $opp_spec . '">' . $opp_spec . '</a></span><br />'; } else { $output .= ' <span class="bold">' . lang("char", "talentspec") . ': <a href="char_talent.php?id=' . $id . '&realm=' . $realm_id . '&curspec=' . $opp_spec . '">' . $opp_spec . '</a> ' . $cur_spec . '</span><br />'; } if (count($talents) > 1) { $output .= ' <table class="lined" id="ch_tal_main"> <tr valign="top" align="center">'; $talent_rate = isset($server[$realmid]["talent_rate"]) ? $server[$realmid]["talent_rate"] : 1; $talent_points = ($char["level"] - 9) * $talent_rate; $talent_points_left = $char["talent_points"]; $talent_points_used = $talent_points - $talent_points_left; $tabs = array(); $l = 0; for ($i = 0; $i < count($talents); $i++) { if ($core == 1) { $talent_spell = $sql["dbc"]->query("SELECT spell" . ($talent_ranks[$i] + 1) . " FROM talent WHERE id='" . $talents[$i] . "'"); $talent_spell = $sql["dbc"]->result($talent_spell, 0); } else { $talent_spell = $talents[$i]; } if ($tab = $sql["dbc"]->fetch_assoc($sql["dbc"]->query("SELECT TalentTab, Row, Col, Talent1, TalentCount1 FROM talent WHERE spell5='" . $talent_spell . "' LIMIT 1"))) { if (isset($tabs[$tab["TalentTab"]][$tab["Row"]][$tab["Col"]])) { $l -= $tabs[$tab["TalentTab"]][$tab["Row"]][$tab["Col"]][1]; } $tabs[$tab["TalentTab"]][$tab["Row"]][$tab["Col"]] = array($talent_spell, "5", "5"); $l += 5; if ($tab["Talent1"]) { talent_dependencies($tabs, $tab, $l); } } elseif ($tab = $sql["dbc"]->fetch_assoc($sql["dbc"]->query("SELECT TalentTab, Row, Col, Talent1, TalentCount1 FROM talent WHERE spell4='" . $talent_spell . "' LIMIT 1"))) { if (isset($tabs[$tab["TalentTab"]][$tab["Row"]][$tab["Col"]])) { $l -= $tabs[$tab["TalentTab"]][$tab["Row"]][$tab["Col"]][1]; } $tabs[$tab["TalentTab"]][$tab["Row"]][$tab["Col"]] = array($talent_spell, "4", $tab["Spell5"] ? "2" : "5"); $l += 4; if ($tab["Talent1"]) { talent_dependencies($tabs, $tab, $l); } } elseif ($tab = $sql["dbc"]->fetch_assoc($sql["dbc"]->query("SELECT TalentTab, Row, Col, Talent1, TalentCount1 FROM talent WHERE spell3='" . $talent_spell . "' LIMIT 1"))) { if (isset($tabs[$tab["TalentTab"]][$tab["Row"]][$tab["Col"]])) { $l -= $tabs[$tab["TalentTab"]][$tab["Row"]][$tab["Col"]][1]; } $tabs[$tab["TalentTab"]][$tab["Row"]][$tab["Col"]] = array($talent_spell, "3", $tab["Spell4"] ? "2" : "5"); $l += 3; if ($tab["Talent1"]) { talent_dependencies($tabs, $tab, $l); } } elseif ($tab = $sql["dbc"]->fetch_assoc($sql["dbc"]->query("SELECT TalentTab, Row, Col, Talent1, TalentCount1 FROM talent WHERE spell2='" . $talent_spell . "' LIMIT 1"))) { if (isset($tabs[$tab["TalentTab"]][$tab["Row"]][$tab["Col"]])) { $l -= $tabs[$tab["TalentTab"]][$tab["Row"]][$tab["Col"]][1]; } $tabs[$tab["TalentTab"]][$tab["Row"]][$tab["Col"]] = array($talent_spell, "2", $tab["Spell3"] ? "2" : "5"); $l += 2; if ($tab["Talent1"]) { talent_dependencies($tabs, $tab, $l); } } elseif ($tab = $sql["dbc"]->fetch_assoc($sql["dbc"]->query("SELECT TalentTab, Row, Col, Talent1, TalentCount1 FROM talent WHERE spell1='" . $talent_spell . "' LIMIT 1"))) { if (isset($tabs[$tab["TalentTab"]][$tab["Row"]][$tab["Col"]])) { $l -= $tabs[$tab["TalentTab"]][$tab["Row"]][$tab["Col"]][1]; } $tabs[$tab["TalentTab"]][$tab["Row"]][$tab["Col"]] = array($talent_spell, '1', $tab["Spell2"] ? "2" : "5"); $l += 1; if ($tab["Talent1"]) { talent_dependencies($tabs, $tab, $l); } } } unset($tab); unset($talent); $class_name = get_class_name($char["class"]); foreach ($tabs as $k => $data) { $talent_name = $sql["dbc"]->result($sql["dbc"]->query("SELECT name FROM talenttab WHERE id='" . $k . "'"), 0, "name"); $talent_name = str_replace(" ", "", $talent_name); $points = 0; $output .= ' <td> <table class="hidden" id="ch_tal_0_width"> <tr> <td colspan="6" style="ch_tal_0_bottom_width"> </td> </tr> <tr>'; for ($i = 0; $i < 11; ++$i) { for ($j = 0; $j < 4; ++$j) { if (isset($data[$i][$j])) { // this_is_junk: style left hardcoded because it's calculated. $output .= ' <td valign="bottom" align="center" style="border-top-width: 0px;border-bottom-width: 0px;background-attachment:fixed;background:url(./img/TALENTFRAME/' . $class_name . $talent_name . '.png) ' . $j * -50 . 'px ' . $i * -50 . 'px"> <a href="' . $base_datasite . $spell_datasite . $data[$i][$j][0] . '" rel="external"> <img src="' . spell_get_icon($data[$i][$j][0]) . '" width="36" height="36" class="icon_border_' . $data[$i][$j][2] . '" alt="" /> </a> <div class="ch_tal_level_shadow">' . $data[$i][$j][1] . '</div> <div class="ch_tal_level">' . $data[$i][$j][1] . '</div> </td>'; $points += $data[$i][$j][1]; } else { $output .= ' <td valign="bottom" align="center" style="border-top-width: 0px;border-bottom-width: 0px;background-attachment:fixed;background:url(./img/TALENTFRAME/' . $class_name . $talent_name . '.png) ' . $j * -50 . 'px ' . $i * -50 . 'px"> <img src="img/blank.gif" width="44" height="44" alt="" /> </td>'; } } $output .= ' </tr> <tr>'; } $output .= ' <td colspan="6" id="ch_tal_0_top_bottom_width"> </td> </tr> <tr> <td colspan="6" valign="bottom" align="left"> ' . $sql["dbc"]->result($sql["dbc"]->query("SELECT name FROM talenttab WHERE id='" . $k . "'"), 0, "name") . ': ' . $points . ' </td> </tr> </table> </td>'; } unset($data); unset($k); unset($tabs); $output .= ' </tr> </table> <br /> <table class="center"> <tr> <td align="left"> ' . lang("char", "talent_rate") . ': <br /> ' . lang("char", "talent_points") . ': <br /> ' . lang("char", "talent_points_used") . ': <br /> ' . lang("char", "talent_points_shown") . ': <br /> ' . lang("char", "talent_points_left") . ': </td> <td align="left"> ' . $talent_rate . '<br /> ' . $talent_points . '<br /> ' . $talent_points_used . '<br /> ' . $l . '<br /> ' . $talent_points_left . ' </td> <td style="width: 64px"> </td> <td align="right">'; unset($l); unset($talent_rate); unset($talent_points); unset($talent_points_used); unset($talent_points_left); if ($core == 1) { $glyph_query = "SELECT glyphs" . $cur_spec . " FROM characters WHERE guid='" . $id . "'"; $glyph_results = $sql["char"]->query($glyph_query); $glyph_field = $sql["char"]->fetch_assoc($glyph_results); $glyphs = $glyph_field["glyphs1"]; $glyphs = substr($glyphs, 0, strlen($glyphs) - 1); $glyphs = explode(',', $glyphs); } else { $glyph_query = "SELECT * FROM character_glyphs WHERE guid='" . $id . "' and spec='" . ($cur_spec - 1) . "'"; $glyph_result = $sql["char"]->query($glyph_query); $glyph_field = $sql["char"]->fetch_assoc($glyph_result); $glyphs = array(); if (isset($glyph_field["glyph1"])) { array_push($glyphs, $glyph_field["glyph1"]); } if (isset($glyph_field["glyph2"])) { array_push($glyphs, $glyph_field["glyph2"]); } if (isset($glyph_field["glyph3"])) { array_push($glyphs, $glyph_field["glyph3"]); } if (isset($glyph_field["glyph4"])) { array_push($glyphs, $glyph_field["glyph4"]); } if (isset($glyph_field["glyph5"])) { array_push($glyphs, $glyph_field["glyph5"]); } if (isset($glyph_field["glyph6"])) { array_push($glyphs, $glyph_field["glyph6"]); } } for ($i = 0; $i < 6; ++$i) { if ($glyphs[$i]) { $glyph = $sql["dbc"]->result($sql["dbc"]->query("SELECT spellid FROM glyphproperties WHERE id='" . $glyphs[$i] . "'"), 0); $output .= ' <a href="' . $base_datasite . $spell_datasite . $glyph . '" rel="external"> <img src="' . spell_get_icon($glyph) . '" width="36" height="36" class="icon_border_0" alt="" /> </a>'; } } unset($glyphs); $output .= ' </td> </tr> </table>'; } //---------------Page Specific Data Ends here---------------------------- //---------------Character Tabs Footer----------------------------------- $output .= ' </div> <br /> <table class="hidden"> <tr> <td>'; // button to user account page, user account page has own security makebutton(lang("char", "chars_acc"), 'user.php?action=edit_user&id=' . $owner_acc_id . '', 130); $output .= ' </td> <td>'; // only higher level GM with delete access can edit character // character edit allows removal of character items, so delete permission is needed if ($user_lvl > $owner_gmlvl && $user_lvl >= $action_permission["delete"]) { //makebutton($lang_char["edit_button"], 'char_edit.php?id='.$id.'&realm='.$realmid.'', 130); $output .= ' </td> <td>'; } // only higher level GM with delete access, or character owner can delete character if ($user_lvl > $owner_gmlvl && $user_lvl >= $action_permission["delete"] || $owner_name === $user_name) { makebutton(lang("char", "del_char"), 'char_list.php?action=del_char_form&check%5B%5D=' . $id . '" type="wrn', 130); $output .= ' </td> <td>'; } // only GM with update permission can send mail, mail can send items, so update permission is needed if ($user_lvl >= $action_permission["update"]) { makebutton(lang("char", "send_mail"), 'mail.php?type=ingame_mail&to=' . $char["name"], 130); $output .= ' </td> <td>'; } makebutton(lang("global", "back"), 'javascript:window.history.back()" type="def', 130); $output .= ' </td> </tr> </table> <br /> <!-- end of char_talent.php -->'; } else { error(lang("char", "no_permission")); } } else { error(lang("char", "no_char_found")); } }
function char_quest(&$sqlr, &$sqlc) { global $output, $lang_global, $lang_char, $realm_id, $world_db, $characters_db, $action_permission, $user_lvl, $user_name, $quest_datasite, $itemperpage; wowhead_tt(); if (empty($_GET['id'])) { error($lang_global['empty_fields']); } if (empty($_GET['realm'])) { $realmid = $realm_id; } else { $realmid = $sqlr->quote_smart($_GET['realm']); if (is_numeric($realmid)) { $sqlc->connect($characters_db[$realmid]['addr'], $characters_db[$realmid]['user'], $characters_db[$realmid]['pass'], $characters_db[$realmid]['name']); } else { $realmid = $realm_id; } } $id = $sqlc->quote_smart($_GET['id']); if (is_numeric($id)) { } else { $id = 0; } //==========================$_GET and SECURE================================= $start = isset($_GET['start']) ? $sqlc->quote_smart($_GET['start']) : 0; if (is_numeric($start)) { } else { $start = 0; } $order_by = isset($_GET['order_by']) ? $sqlc->quote_smart($_GET['order_by']) : 1; if (is_numeric($order_by)) { } else { $order_by = 1; } $dir = isset($_GET['dir']) ? $sqlc->quote_smart($_GET['dir']) : 0; if (preg_match('/^[01]{1}$/', $dir)) { } else { $dir = 0; } $order_dir = $dir ? 'ASC' : 'DESC'; $dir = $dir ? 0 : 1; //==========================$_GET and SECURE end============================= $result = $sqlc->query('SELECT account, name, race, class, level, gender FROM characters WHERE guid = ' . $id . ' LIMIT 1'); if ($sqlc->num_rows($result)) { $char = $sqlc->fetch_assoc($result); $owner_acc_id = $sqlc->result($result, 0, 'account'); $result = $sqlr->query('SELECT gmlevel, username FROM account WHERE id = ' . $char['account'] . ''); $owner_gmlvl = $sqlr->result($result, 0, 'gmlevel'); $owner_name = $sqlr->result($result, 0, 'username'); if ($user_lvl > $owner_gmlvl || $owner_name === $user_name) { $output .= ' <center> <div id="tab_content"> <div id="tab"> <ul> <li><a href="char.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['char_sheet'] . '</a></li> <li><a href="char_inv.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['inventory'] . '</a></li> <li><a href="char_extra.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['extra'] . '</a></li> ' . ($char['level'] < 10 ? '' : '<li><a href="char_talent.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['talents'] . '</a></li>') . ' <li><a href="char_achieve.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['achievements'] . '</a></li> <li><a href="char_rep.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['reputation'] . '</a></li> <li><a href="char_skill.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['skills'] . '</a></li>'; if (char_get_class_name($char['class']) === 'Hunter') { $output .= ' <li><a href="char_pets.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['pets'] . '</a></li>'; } $output .= ' <li><a href="char_friends.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['friends'] . '</a></li> <li><a href="char_spell.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['spells'] . '</a></li> <li><a href="char_mail.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['mail'] . '</a></li> </ul> <ul>'; // selected char tab at last $output .= ' <li id="selected"><a href="char_quest.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['quests'] . '</a></li>'; $output .= ' </ul> </div> <div id="tab_content2"> <font class="bold"> ' . htmlentities($char['name']) . ' - <img src="img/c_icons/' . $char['race'] . '-' . $char['gender'] . '.gif" onmousemove="toolTip(\'' . char_get_race_name($char['race']) . '\', \'item_tooltip\')" onmouseout="toolTip()" alt="" /> <img src="img/c_icons/' . $char['class'] . '.gif" onmousemove="toolTip(\'' . char_get_class_name($char['class']) . '\',\'item_tooltip\')" onmouseout="toolTip()" alt="" /> - lvl ' . char_get_level_color($char['level']) . ' </font> <br /><br /> <table class="lined" style="width: 550px;"> <tr> <th width="10%"><a href="char_quest.php?id=' . $id . '&realm=' . $realmid . '&start=' . $start . '&order_by=0&dir=' . $dir . '"' . ($order_by == 0 ? ' class="' . $order_dir . '"' : '') . '>' . $lang_char['quest_id'] . '</a></th> <th width="7%"><a href="char_quest.php?id=' . $id . '&realm=' . $realmid . '&start=' . $start . '&order_by=1&dir=' . $dir . '"' . ($order_by == 1 ? ' class="' . $order_dir . '"' : '') . '>' . $lang_char['quest_level'] . '</a></th> <th width="78%"><a href="char_quest.php?id=' . $id . '&realm=' . $realmid . '&start=' . $start . '&order_by=2&dir=' . $dir . '"' . ($order_by == 2 ? ' class="' . $order_dir . '"' : '') . '>' . $lang_char['quest_title'] . '</a></th> <th width="5%"><img src="img/aff_qst.png" width="14" height="14" border="0" alt="" /></th> </tr>'; $result = $sqlc->query('SELECT quest, status, rewarded FROM character_queststatus WHERE guid = ' . $id . ' AND ( status = 3 OR status = 1 ) ORDER BY status DESC'); $quests_1 = array(); $quests_3 = array(); if ($sqlc->num_rows($result)) { while ($quest = $sqlc->fetch_assoc($result)) { $deplang = get_lang_id(); $query1 = $sqlc->query('SELECT QuestLevel, IFNULL(' . ($deplang != 0 ? '`title_loc' . $deplang . '`' : 'NULL') . ', title) as Title FROM `' . $world_db[$realmid]['name'] . '`.`quest_template` LEFT JOIN `' . $world_db[$realmid]['name'] . '`.`locales_quest` ON `quest_template`.`entry` = `locales_quest`.`entry` WHERE `quest_template`.`entry` = \'' . $quest['quest'] . '\''); $quest_info = $sqlc->fetch_assoc($query1); if (1 == $quest['status']) { array_push($quests_1, array($quest['quest'], $quest_info['QuestLevel'], $quest_info['Title'], $quest['rewarded'])); } else { array_push($quests_3, array($quest['quest'], $quest_info['QuestLevel'], $quest_info['Title'])); } } unset($quest); unset($quest_info); aasort($quests_1, $order_by, $dir); $orderby = $order_by; if (2 < $orderby) { $orderby = 1; } aasort($quests_3, $orderby, $dir); $all_record = count($quests_1); foreach ($quests_3 as $data) { $output .= ' <tr> <td>' . $data[0] . '</td> <td>(' . $data[1] . ')</td> <td align="left"><a href="' . $quest_datasite . $data[0] . '" target="_blank">' . htmlentities($data[2]) . '</a></td> <td><img src="img/aff_qst.png" width="14" height="14" alt="" /></td> </tr>'; } unset($quest_3); if (count($quests_1)) { $output .= ' </table> <table class="hidden" style="width: 550px;"> <tr align="right"> <td>'; $output .= generate_pagination('char_quest.php?id=' . $id . '&realm=' . $realmid . '&start=' . $start . '&order_by=' . $order_by . '&dir=' . ($dir ? 0 : 1), $all_record, $itemperpage, $start); $output .= ' </td> </tr> </table> <table class="lined" style="width: 550px;"> <tr> <th width="10%"><a href="char_quest.php?id=' . $id . '&realm=' . $realmid . '&start=' . $start . '&order_by=0&dir=' . $dir . '"' . ($order_by == 0 ? ' class="' . $order_dir . '"' : '') . '>' . $lang_char['quest_id'] . '</a></th> <th width="7%"><a href="char_quest.php?id=' . $id . '&realm=' . $realmid . '&start=' . $start . '&order_by=1&dir=' . $dir . '"' . ($order_by == 1 ? ' class="' . $order_dir . '"' : '') . '>' . $lang_char['quest_level'] . '</a></th> <th width="68%"><a href="char_quest.php?id=' . $id . '&realm=' . $realmid . '&start=' . $start . '&order_by=2&dir=' . $dir . '"' . ($order_by == 2 ? ' class="' . $order_dir . '"' : '') . '>' . $lang_char['quest_title'] . '</a></th> <th width="10%"><a href="char_quest.php?id=' . $id . '&realm=' . $realmid . '&start=' . $start . '&order_by=3&dir=' . $dir . '"' . ($order_by == 3 ? ' class="' . $order_dir . '"' : '') . '>' . $lang_char['rewarded'] . '</a></th> <th width="5%"><img src="img/aff_tick.png" width="14" height="14" border="0" alt="" /></th> </tr>'; $i = 0; foreach ($quests_1 as $data) { if ($i < $start + $itemperpage && $i >= $start) { $output .= ' <tr> <td>' . $data[0] . '</td> <td>(' . $data[1] . ')</td> <td align="left"><a href="' . $quest_datasite . $data[0] . '" target="_blank">' . htmlentities($data[2]) . '</a></td> <td><img src="img/aff_' . ($data[3] ? 'tick' : 'qst') . '.png" width="14" height="14" alt="" /></td> <td><img src="img/aff_tick.png" width="14" height="14" alt="" /></td> </tr>'; } $i++; } unset($data); unset($quest_1); $output .= ' <tr align="right"> <td colspan="5">'; $output .= generate_pagination('char_quest.php?id=' . $id . '&realm=' . $realmid . '&start=' . $start . '&order_by=' . $order_by . '&dir=' . ($dir ? 0 : 1), $all_record, $itemperpage, $start); $output .= ' </td> </tr>'; } } else { $output .= ' <tr> <td colspan="4"><p>' . $lang_char['no_act_quests'] . '</p></td> </tr>'; } //---------------Page Specific Data Ends here---------------------------- //---------------Character Tabs Footer----------------------------------- $output .= ' </table> </div> </div> <br /> <table class="hidden"> <tr> <td>'; // button to user account page, user account page has own security makebutton($lang_char['chars_acc'], 'user.php?action=edit_user&id=' . $owner_acc_id . '', 130); $output .= ' </td> <td>'; // only higher level GM with delete access can edit character // character edit allows removal of character items, so delete permission is needed if ($user_lvl > $owner_gmlvl && $user_lvl >= $action_permission['delete']) { makebutton($lang_char['edit_button'], 'char_edit.php?id=' . $id . '&realm=' . $realmid . '', 130); $output .= ' </td> <td>'; } // only higher level GM with delete access, or character owner can delete character if ($user_lvl > $owner_gmlvl && $user_lvl >= $action_permission['delete'] || $owner_name === $user_name) { makebutton($lang_char['del_char'], 'char_list.php?action=del_char_form&check%5B%5D=' . $id . '" type="wrn', 130); $output .= ' </td> <td>'; } // only GM with update permission can send mail, mail can send items, so update permission is needed if ($user_lvl >= $action_permission['update']) { makebutton($lang_char['send_mail'], 'mail.php?type=ingame_mail&to=' . $char['name'] . '', 130); $output .= ' </td> <td>'; } makebutton($lang_global['back'], 'javascript:window.history.back()" type="def', 130); $output .= ' </td> </tr> </table> <br /> </center> <!-- end of char_quest.php -->'; } else { error($lang_char['no_permission']); } } else { error($lang_char['no_char_found']); } }
function char_talent(&$sqlr, &$sqlc) { global $output, $lang_global, $lang_char, $realm_id, $realm_db, $characters_db, $mmfpm_db, $server, $action_permission, $user_lvl, $user_name, $spell_datasite; // this page uses wowhead tooltops wowhead_tt(); // we need at least an id or we would have nothing to show if (empty($_GET['id'])) { error($lang_global['empty_fields']); } // this is multi realm support, as of writing still under development // this page is already implementing it if (empty($_GET['realm'])) { $realmid = $realm_id; } else { $realmid = $sqlr->quote_smart($_GET['realm']); if (is_numeric($realmid)) { $sqlc->connect($characters_db[$realmid]['addr'], $characters_db[$realmid]['user'], $characters_db[$realmid]['pass'], $characters_db[$realmid]['name']); } else { $realmid = $realm_id; } } //-------------------SQL Injection Prevention-------------------------------- // no point going further if we don have a valid ID $id = $sqlc->quote_smart($_GET['id']); if (is_numeric($id)) { } else { error($lang_global['empty_fields']); } $result = $sqlc->query('SELECT account, name, race, class, level, gender, CAST( SUBSTRING_INDEX(SUBSTRING_INDEX(data, " ", ' . (CHAR_DATA_OFFSET_POINTS1 + 1) . '), " ", -1) AS UNSIGNED) AS talent_points FROM characters WHERE guid = ' . $id . ' LIMIT 1'); if ($sqlc->num_rows($result)) { $char = $sqlc->fetch_assoc($result); $owner_acc_id = $sqlc->result($result, 0, 'account'); $result = $sqlr->query('SELECT gmlevel,username FROM account WHERE id = ' . $char['account'] . ''); $owner_gmlvl = $sqlr->result($result, 0, 'gmlevel'); $owner_name = $sqlr->result($result, 0, 'username'); if ($user_lvl > $owner_gmlvl || $owner_name === $user_name) { $result = $sqlc->query('SELECT spell FROM character_spell WHERE guid = ' . $id . ' and active = 1 and disabled = 0 ORDER BY spell DESC'); $output .= ' <center> <div id="tab_content"> <div id="tab"> <ul> <li><a href="char.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['char_sheet'] . '</a></li> <li><a href="char_inv.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['inventory'] . '</a></li> <li><a href="char_extra.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['extra'] . '</a></li> <li><a href="char_achieve.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['achievements'] . '</a></li> <li><a href="char_rep.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['reputation'] . '</a></li> <li><a href="char_skill.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['skills'] . '</a></li> <li><a href="char_quest.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['quests'] . '</a></li>'; if (char_get_class_name($char['class']) === 'Hunter') { $output .= ' <li><a href="char_pets.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['pets'] . '</a></li>'; } $output .= ' <li><a href="char_friends.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['friends'] . '</a></li> <li><a href="char_spell.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['spells'] . '</a></li> <li><a href="char_mail.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['mail'] . '</a></li> </ul> <ul>'; // selected char tab at last $output .= ' <li id="selected"><a href="char_talent.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['talents'] . '</a></li>'; $output .= ' </ul> </div> <div id="tab_content2"> <font class="bold"> ' . htmlentities($char['name']) . ' - <img src="img/c_icons/' . $char['race'] . '-' . $char['gender'] . '.gif" onmousemove="toolTip(\'' . char_get_race_name($char['race']) . '\', \'item_tooltip\')" onmouseout="toolTip()" alt="" /> <img src="img/c_icons/' . $char['class'] . '.gif" onmousemove="toolTip(\'' . char_get_class_name($char['class']) . '\',\'item_tooltip\')" onmouseout="toolTip()" alt="" /> - lvl ' . char_get_level_color($char['level']) . ' </font> <br /><br /> <table class="lined" style="width: 550px;"> <tr valign="top" align="center">'; if ($sqlc->num_rows($result)) { $talent_rate = isset($server[$realmid]['talent_rate']) ? $server[$realmid]['talent_rate'] : 1; $talent_points = ($char['level'] - 9) * $talent_rate; $talent_points_left = $char['talent_points']; $talent_points_used = $talent_points - $talent_points_left; $sqlm = new SQL(); $sqlm->connect($mmfpm_db['addr'], $mmfpm_db['user'], $mmfpm_db['pass'], $mmfpm_db['name']); $tabs = array(); $l = 0; while (($talent = $sqlc->fetch_assoc($result)) && $l < $talent_points_used) { if ($tab = $sqlm->fetch_assoc($sqlm->query('SELECT field_1, field_2, field_3, field_13, field_16 from dbc_talent where field_8 = ' . $talent['spell'] . ' LIMIT 1'))) { if (isset($tabs[$tab['field_1']][$tab['field_2']][$tab['field_3']])) { $l -= $tabs[$tab['field_1']][$tab['field_2']][$tab['field_3']][1]; } $tabs[$tab['field_1']][$tab['field_2']][$tab['field_3']] = array($talent['spell'], '5', '5'); $l += 5; if ($tab['field_13']) { talent_dependencies($tabs, $tab, $l, $sqlm); } } elseif ($tab = $sqlm->fetch_assoc($sqlm->query('SELECT field_1, field_2, field_3, field_13, field_16, field_8 from dbc_talent where field_7 = ' . $talent['spell'] . ' LIMIT 1'))) { if (isset($tabs[$tab['field_1']][$tab['field_2']][$tab['field_3']])) { $l -= $tabs[$tab['field_1']][$tab['field_2']][$tab['field_3']][1]; } $tabs[$tab['field_1']][$tab['field_2']][$tab['field_3']] = array($talent['spell'], '4', $tab['field_8'] ? '2' : '5'); $l += 4; if ($tab['field_13']) { talent_dependencies($tabs, $tab, $l, $sqlm); } } elseif ($tab = $sqlm->fetch_assoc($sqlm->query('SELECT field_1, field_2, field_3, field_13, field_16, field_7 from dbc_talent where field_6 = ' . $talent['spell'] . ' LIMIT 1'))) { if (isset($tabs[$tab['field_1']][$tab['field_2']][$tab['field_3']])) { $l -= $tabs[$tab['field_1']][$tab['field_2']][$tab['field_3']][1]; } $tabs[$tab['field_1']][$tab['field_2']][$tab['field_3']] = array($talent['spell'], '3', $tab['field_7'] ? '2' : '5'); $l += 3; if ($tab['field_13']) { talent_dependencies($tabs, $tab, $l, $sqlm); } } elseif ($tab = $sqlm->fetch_assoc($sqlm->query('SELECT field_1, field_2, field_3, field_13, field_16, field_6 from dbc_talent where field_5 = ' . $talent['spell'] . ' LIMIT 1'))) { if (isset($tabs[$tab['field_1']][$tab['field_2']][$tab['field_3']])) { $l -= $tabs[$tab['field_1']][$tab['field_2']][$tab['field_3']][1]; } $tabs[$tab['field_1']][$tab['field_2']][$tab['field_3']] = array($talent['spell'], '2', $tab['field_6'] ? '2' : '5'); $l += 2; if ($tab['field_13']) { talent_dependencies($tabs, $tab, $l, $sqlm); } } elseif ($tab = $sqlm->fetch_assoc($sqlm->query('SELECT field_1, field_2, field_3, field_13, field_16, field_5 from dbc_talent where field_4 = ' . $talent['spell'] . ' LIMIT 1'))) { if (isset($tabs[$tab['field_1']][$tab['field_2']][$tab['field_3']])) { $l -= $tabs[$tab['field_1']][$tab['field_2']][$tab['field_3']][1]; } $tabs[$tab['field_1']][$tab['field_2']][$tab['field_3']] = array($talent['spell'], '1', $tab['field_5'] ? '2' : '5'); $l += 1; if ($tab['field_13']) { talent_dependencies($tabs, $tab, $l, $sqlm); } } } unset($tab); unset($talent); foreach ($tabs as $k => $data) { $points = 0; $output .= ' <td> <table class="hidden" style="width: 0px;"> <tr> <td colspan="6" style="border-bottom-width: 0px;"> </td> </tr> <tr>'; for ($i = 0; $i < 11; ++$i) { for ($j = 0; $j < 4; ++$j) { if (isset($data[$i][$j])) { $output .= ' <td valign="bottom" align="center" style="border-top-width: 0px;border-bottom-width: 0px;"> <a href="' . $spell_datasite . $data[$i][$j][0] . '" target="_blank"> <img src="' . spell_get_icon($data[$i][$j][0], $sqlm) . '" width="36" height="36" class="icon_border_' . $data[$i][$j][2] . '" alt="" /> </a> <div style="width:0px;margin:-14px 0px 0px 30px;font-size:14px;color:black">' . $data[$i][$j][1] . '</div> <div style="width:0px;margin:-14px 0px 0px 29px;font-size:14px;color:white">' . $data[$i][$j][1] . '</div> </td>'; $points += $data[$i][$j][1]; } else { $output .= ' <td valign="bottom" align="center" style="border-top-width: 0px;border-bottom-width: 0px;"> <img src="img/blank.gif" width="44" height="44" alt="" /> </td>'; } } $output .= ' </tr> <tr>'; } $output .= ' <td colspan="6" style="border-top-width: 0px;border-bottom-width: 0px;"> </td> </tr> <tr> <td colspan="6" valign="bottom" align="left"> ' . $sqlm->result($sqlm->query('SELECT field_1 FROM dbc_talenttab WHERE id = ' . $k . ''), 0, 'field_1') . ': ' . $points . ' </td> </tr> </table> </td>'; } unset($data); unset($k); unset($tabs); $output .= ' </tr> </table> <br /> <table> <tr> <td align="left"> ' . $lang_char['talent_rate'] . ': <br /> ' . $lang_char['talent_points'] . ': <br /> ' . $lang_char['talent_points_used'] . ': <br /> ' . $lang_char['talent_points_shown'] . ': <br /> ' . $lang_char['talent_points_left'] . ': </td> <td align="left"> ' . $talent_rate . '<br /> ' . $talent_points . '<br /> ' . $talent_points_used . '<br /> ' . $l . '<br /> ' . $talent_points_left . ' </td> <td width="64"> </td> <td align="right">'; unset($l); unset($talent_rate); unset($talent_points); unset($talent_points_used); unset($talent_points_left); $glyphs = explode(' ', $sqlc->result($sqlc->query('SELECT data FROM characters WHERE guid = ' . $id . ''), 0)); for ($i = 0; $i < 6; ++$i) { if ($glyphs[CHAR_DATA_OFFSET_GLYPHS + $i]) { $glyph = $sqlm->result($sqlm->query('select field_1 from dbc_glyphproperties where id = ' . $glyphs[CHAR_DATA_OFFSET_GLYPHS + $i] . ''), 0); $output .= ' <a href="' . $spell_datasite . $glyph . '" target="_blank"> <img src="' . spell_get_icon($glyph, $sqlm) . '" width="36" height="36" class="icon_border_0" alt="" /> </a>'; } } unset($glyphs); $output .= ' </td>'; } //---------------Page Specific Data Ends here---------------------------- //---------------Character Tabs Footer----------------------------------- $output .= ' </tr> </table> </div> </div> <br /> <table class="hidden"> <tr> <td>'; // button to user account page, user account page has own security makebutton($lang_char['chars_acc'], 'user.php?action=edit_user&id=' . $owner_acc_id . '', 130); $output .= ' </td> <td>'; // only higher level GM with delete access can edit character // character edit allows removal of character items, so delete permission is needed if ($user_lvl > $owner_gmlvl && $user_lvl >= $action_permission['delete']) { makebutton($lang_char['edit_button'], 'char_edit.php?id=' . $id . '&realm=' . $realmid . '', 130); $output .= ' </td> <td>'; } // only higher level GM with delete access, or character owner can delete character if ($user_lvl > $owner_gmlvl && $user_lvl >= $action_permission['delete'] || $owner_name === $user_name) { makebutton($lang_char['del_char'], 'char_list.php?action=del_char_form&check%5B%5D=' . $id . '" type="wrn', 130); $output .= ' </td> <td>'; } // only GM with update permission can send mail, mail can send items, so update permission is needed if ($user_lvl >= $action_permission['update']) { makebutton($lang_char['send_mail'], 'mail.php?type=ingame_mail&to=' . $char['name'] . '', 130); $output .= ' </td> <td>'; } makebutton($lang_global['back'], 'javascript:window.history.back()" type="def', 130); $output .= ' </td> </tr> </table> <br /> </center> <!-- end of char_talent.php -->'; } else { error($lang_char['no_permission']); } } else { error($lang_char['no_char_found']); } }
function edit_char() { global $lang_global, $lang_char, $lang_item, $output, $realm_db, $characters_db, $realm_id, $mmfpm_db, $action_permission, $user_lvl, $item_datasite; wowhead_tt(); valid_login($action_permission['delete']); if (empty($_GET['id'])) { error($lang_global['empty_fields']); } $sql = new SQL(); $sql->connect($characters_db[$realm_id]['addr'], $characters_db[$realm_id]['user'], $characters_db[$realm_id]['pass'], $characters_db[$realm_id]['name']); $sqlm = new SQL(); $sqlm->connect($mmfpm_db['addr'], $mmfpm_db['user'], $mmfpm_db['pass'], $mmfpm_db['name']); $id = $sql->quote_smart($_GET['id']); $result = $sql->query("SELECT account FROM `characters` WHERE guid = '{$id}'"); if ($sql->num_rows($result)) { //resrict by owner's gmlvl $owner_acc_id = $sql->result($result, 0, 'account'); $sql->connect($realm_db['addr'], $realm_db['user'], $realm_db['pass'], $realm_db['name']); $query = $sql->query("SELECT gmlevel,username FROM account WHERE id ='{$owner_acc_id}'"); $owner_gmlvl = $sql->result($query, 0, 'gmlevel'); $owner_name = $sql->result($query, 0, 'username'); $owner_check = $sql->result($query, 0, 'username'); if ($user_lvl >= $owner_gmlvl) { $sql->connect($characters_db[$realm_id]['addr'], $characters_db[$realm_id]['user'], $characters_db[$realm_id]['pass'], $characters_db[$realm_id]['name']); $result = $sql->query("SELECT guid, account, name, race, class, position_x, position_y, map, online, totaltime, position_z, zone, level, gender, arenaPoints, totalHonorPoints, todayHonorPoints, yesterdayHonorPoints, totalKills, todaykills, yesterdayKills, health, power1, power2, power3, power4, power5, power6, power7, money, xp FROM `characters` WHERE guid = '{$id}'"); $char = $sql->fetch_row($result); $char_data = explode(' ', $char[2]); if ($char[9]) { $online = "<font class=\"error\">{$lang_char['online']}</font>{$lang_char['edit_offline_only_char']}"; } else { $online = $lang_char['offline']; } if ($char_data[CHAR_DATA_OFFSET_GUILD_ID]) { $query = $sql->query("SELECT name FROM guild WHERE guildid ='{$char_data[CHAR_DATA_OFFSET_GUILD_ID]}'"); $guild_name = $sql->result($query, 0, 'name'); if ($user_lvl > 0) { $guild_name = "<a href=\"guild.php?action=view_guild&error=3&id={$char_data[CHAR_DATA_OFFSET_GUILD_ID]}\" >{$guild_name}</a>"; } if ($char_data[CHAR_DATA_OFFSET_GUILD_RANK]) { $guild_rank_query = $sql->query("SELECT rname FROM guild_rank WHERE guildid ='{$char_data[CHAR_DATA_OFFSET_GUILD_ID]}' AND rid='{$char_data[CHAR_DATA_OFFSET_GUILD_RANK]}'"); $guild_rank = $sql->result($guild_rank_query, 0, 'rname'); } else { $guild_rank = $lang_char['guild_leader']; } } else { $guild_name = $lang_global['none']; $guild_rank = $lang_global['none']; } $block = unpack("f", pack("L", $char_data[CHAR_DATA_OFFSET_BLOCK])); $block = round($block[1], 4); $dodge = unpack("f", pack("L", $char_data[CHAR_DATA_OFFSET_DODGE])); $dodge = round($dodge[1], 4); $parry = unpack("f", pack("L", $char_data[CHAR_DATA_OFFSET_PARRY])); $parry = round($parry[1], 4); $crit = unpack("f", pack("L", $char_data[CHAR_DATA_OFFSET_MELEE_CRIT])); $crit = round($crit[1], 4); $range_crit = unpack("f", pack("L", $char_data[CHAR_DATA_OFFSET_RANGE_CRIT])); $range_crit = round($range_crit[1], 4); $output .= "<center>\r\n\t\t\t<form method=\"get\" action=\"char_edit.php\" name=\"form\">\r\n\t\t\t\t<input type=\"hidden\" name=\"action\" value=\"do_edit_char\" />\r\n\t\t\t\t<input type=\"hidden\" name=\"id\" value=\"{$id}\" />\r\n\t\t\t\t<table class=\"lined\">\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td colspan=\"8\">\n\t\t\t\t\t\t\t<font class=\"bold\">\n\t\t\t\t\t\t\t<input type=\"text\" name=\"name\" size=\"14\" maxlength=\"12\" value=\"{$char['3']}\" /> - \n\t\t\t\t\t\t\t<img src='img/c_icons/{$char[4]}-{$char[14]}.gif' onmousemove='toolTip(\"" . char_get_race_name($char[4]) . "\",\"item_tooltip\")' onmouseout='toolTip()' alt=\"\" /> \n\t\t\t\t\t\t\t<img src='img/c_icons/{$char[5]}.gif' onmousemove='toolTip(\"" . char_get_class_name($char[5]) . "\",\"item_tooltip\")' onmouseout='toolTip()' alt=\"\" /> - lvl " . char_get_level_color($char[13]) . "</font>\n\t\t\t\t\t\t\t<br />{$online}\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td colspan=\"8\">" . get_map_name($char[9], $sqlm) . " - " . get_zone_name($char[12], $sqlm) . "</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td colspan=\"8\">{$lang_char['username']}: \n\t\t\t\t\t\t\t<input type=\"text\" name=\"owner_name\" size=\"20\" maxlength=\"25\" value=\"{$owner_name}\" /> | {$lang_char['acc_id']}: {$owner_acc_id}\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td colspan=\"8\">{$lang_char['guild']}: {$guild_name} | {$lang_char['rank']}: {$guild_rank}</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td colspan=\"8\">{$lang_char['honor_points']}: \n\t\t\t\t\t\t\t<input type=\"text\" name=\"honor_points\" size=\"8\" maxlength=\"6\" value=\"{$char[16]}\" />/\r\n\t\t\t\t\t\t\t<input type=\"text\" name=\"arena_points\" size=\"8\" maxlength=\"6\" value=\"{$char[15]}\" /> - {$lang_char['honor_kills']}: \n\t\t\t\t\t\t\t<input type=\"text\" name=\"total_kills\" size=\"8\" maxlength=\"6\" value=\"{$char[19]}\" />\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td width=\"2%\">\n\t\t\t\t\t\t\t<input type=\"checkbox\" name=\"check[]\" value=\"a0\" />\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td width=\"18%\">{$lang_item['head']}<br />\n\t\t\t\t\t\t\t<a href=\"{$item_datasite}{$char_data[CHAR_DATA_OFFSET_EQU_HEAD]}\" target=\"_blank\">" . get_item_name($char_data[CHAR_DATA_OFFSET_EQU_HEAD]) . "</a>\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td width=\"15%\">{$lang_item['health']}:</td>\n\t\t\t\t\t\t<td width=\"15%\">\n\t\t\t\t\t\t\t<input type=\"text\" name=\"health\" size=\"10\" maxlength=\"6\" value=\"{$char[22]}\" />\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td width=\"15%\">{$lang_item['res_holy']}:</td>\n\t\t\t\t\t\t<td width=\"15%\">\n\t\t\t\t\t\t\t<input type=\"text\" name=\"res_holy\" size=\"10\" maxlength=\"4\" value=\"{$char_data[CHAR_DATA_OFFSET_RES_HOLY]}\" />\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td width=\"18%\">{$lang_item['gloves']}<br />\n\t\t\t\t\t\t\t<a href=\"{$item_datasite}{$char_data[CHAR_DATA_OFFSET_EQU_GLOVES]}\" target=\"_blank\">" . get_item_name($char_data[CHAR_DATA_OFFSET_EQU_GLOVES]) . "</a>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td width=\"2%\">\n\t\t\t\t\t\t\t<input type=\"checkbox\" name=\"check[]\" value=\"a9\" />\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input type=\"checkbox\" name=\"check[]\" value=\"a1\" />\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>{$lang_item['neck']}<br />\n\t\t\t\t\t\t\t<a href=\"{$item_datasite}{$char_data[CHAR_DATA_OFFSET_EQU_NECK]}\" target=\"_blank\">" . get_item_name($char_data[CHAR_DATA_OFFSET_EQU_NECK]) . "</a>\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td>{$lang_item['mana']}:</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input type=\"text\" name=\"mana\" size=\"10\" maxlength=\"6\" value=\"{$char[23]}\" />\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td>{$lang_item['res_arcane']}:</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input type=\"text\" name=\"res_arcane\" size=\"10\" maxlength=\"4\" value=\"{$char_data[CHAR_DATA_OFFSET_RES_ARCANE]}\" />\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td>{$lang_item['belt']}<br />\n\t\t\t\t\t\t\t<a href=\"{$item_datasite}{$char_data[CHAR_DATA_OFFSET_EQU_BELT]}\" target=\"_blank\">" . get_item_name($char_data[CHAR_DATA_OFFSET_EQU_BELT]) . "</a>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input type=\"checkbox\" name=\"check[]\" value=\"a5\" />\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input type=\"checkbox\" name=\"check[]\" value=\"a2\" />\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>{$lang_item['shoulder']}<br />\n\t\t\t\t\t\t\t<a href=\"{$item_datasite}{$char_data[CHAR_DATA_OFFSET_EQU_SHOULDER]}\" target=\"_blank\">" . get_item_name($char_data[CHAR_DATA_OFFSET_EQU_SHOULDER]) . "</a>\n\t\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td>{$lang_item['strength']}:</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input type=\"text\" name=\"str\" size=\"10\" maxlength=\"4\" value=\"{$char_data[CHAR_DATA_OFFSET_STR]}\" />\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td>{$lang_item['res_fire']}:</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input type=\"text\" name=\"res_fire\" size=\"10\" maxlength=\"4\" value=\"{$char_data[CHAR_DATA_OFFSET_RES_FIRE]}\" />\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td>{$lang_item['legs']}<br />\n\t\t\t\t\t\t\t<a href=\"{$item_datasite}{$char_data[CHAR_DATA_OFFSET_EQU_LEGS]}\" target=\"_blank\">" . get_item_name($char_data[CHAR_DATA_OFFSET_EQU_LEGS]) . "</a>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input type=\"checkbox\" name=\"check[]\" value=\"a6\" />\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input type=\"checkbox\" name=\"check[]\" value=\"a14\" />\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>{$lang_item['back']}<br />\n\t\t\t\t\t\t\t<a href=\"{$item_datasite}{$char_data[CHAR_DATA_OFFSET_EQU_BACK]}\" target=\"_blank\">" . get_item_name($char_data[CHAR_DATA_OFFSET_EQU_BACK]) . "</a>\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td>{$lang_item['agility']}:</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input type=\"text\" name=\"agi\" size=\"10\" maxlength=\"4\" value=\"{$char_data[CHAR_DATA_OFFSET_AGI]}\" />\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td>{$lang_item['res_nature']}:</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input type=\"text\" name=\"res_nature\" size=\"10\" maxlength=\"4\" value=\"{$char_data[CHAR_DATA_OFFSET_RES_NATURE]}\" />\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td>{$lang_item['feet']}<br />\n\t\t\t\t\t\t\t<a href=\"{$item_datasite}{$char_data[CHAR_DATA_OFFSET_EQU_FEET]}\" target=\"_blank\">" . get_item_name($char_data[CHAR_DATA_OFFSET_EQU_FEET]) . "</a>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input type=\"checkbox\" name=\"check[]\" value=\"a7\" />\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input type=\"checkbox\" name=\"check[]\" value=\"a4\" />\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>{$lang_item['chest']}<br />\n\t\t\t\t\t\t\t<a href=\"{$item_datasite}{$char_data[CHAR_DATA_OFFSET_EQU_CHEST]}\" target=\"_blank\">" . get_item_name($char_data[CHAR_DATA_OFFSET_EQU_CHEST]) . "</a>\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td>{$lang_item['stamina']}:</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input type=\"text\" name=\"sta\" size=\"10\" maxlength=\"4\" value=\"{$char_data[CHAR_DATA_OFFSET_STA]}\" />\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td>{$lang_item['res_frost']}:</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input type=\"text\" name=\"res_frost\" size=\"10\" maxlength=\"4\" value=\"{$char_data[CHAR_DATA_OFFSET_RES_FROST]}\" />\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td>{$lang_item['finger']} 1<br />\n\t\t\t\t\t\t\t<a href=\"{$item_datasite}{$char_data[380]}\" target=\"_blank\">" . get_item_name($char_data[CHAR_DATA_OFFSET_EQU_FINGER1]) . "</a>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input type=\"checkbox\" name=\"check[]\" value=\"a10\" />\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input type=\"checkbox\" name=\"check[]\" value=\"a3\" />\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>{$lang_item['shirt']}<br />\n\t\t\t\t\t\t\t<a href=\"{$item_datasite}{$char_data[CHAR_DATA_OFFSET_EQU_SHIRT]}\" target=\"_blank\">" . get_item_name($char_data[CHAR_DATA_OFFSET_EQU_SHIRT]) . "</a>\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td>{$lang_item['intellect']}:</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input type=\"text\" name=\"int\" size=\"10\" maxlength=\"4\" value=\"{$char_data[CHAR_DATA_OFFSET_INT]}\" />\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td>{$lang_item['res_shadow']}:</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input type=\"text\" name=\"res_shadow\" size=\"10\" maxlength=\"4\" value=\"{$char_data[CHAR_DATA_OFFSET_RES_SHADOW]}\" />\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td>{$lang_item['finger']} 2<br />\n\t\t\t\t\t\t\t<a href=\"{$item_datasite}{$char_data[CHAR_DATA_OFFSET_EQU_FINGER2]}\" target=\"_blank\">" . get_item_name($char_data[CHAR_DATA_OFFSET_EQU_FINGER2]) . "</a>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input type=\"checkbox\" name=\"check[]\" value=\"a11\" />\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input type=\"checkbox\" name=\"check[]\" value=\"a18\" />\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>{$lang_item['tabard']}<br />\n\t\t\t\t\t\t\t<a href=\"{$item_datasite}{$char_data[CHAR_DATA_OFFSET_EQU_TABARD]}\" target=\"_blank\">" . get_item_name($char_data[CHAR_DATA_OFFSET_EQU_TABARD]) . "</a>\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td>{$lang_item['spirit']}:</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input type=\"text\" name=\"spi\" size=\"10\" maxlength=\"4\" value=\"{$char_data[CHAR_DATA_OFFSET_SPI]}\" />\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td>{$lang_char['exp']}:</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input type=\"text\" name=\"exp\" size=\"10\" maxlength=\"8\" value=\"{$char[31]}\" />\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td>{$lang_item['trinket']} 1<br />\n\t\t\t\t\t\t\t<a href=\"{$item_datasite}{$char_data[CHAR_DATA_OFFSET_EQU_TRINKET1]}\" target=\"_blank\">" . get_item_name($char_data[CHAR_DATA_OFFSET_EQU_TRINKET1]) . "</a>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input type=\"checkbox\" name=\"check[]\" value=\"a12\" />\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input type=\"checkbox\" name=\"check[]\" value=\"a8\" />\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>{$lang_item['wrist']}<br />\n\t\t\t\t\t\t\t<a href=\"{$item_datasite}{$char_data[CHAR_DATA_OFFSET_EQU_WRIST]}\" target=\"_blank\">" . get_item_name($char_data[CHAR_DATA_OFFSET_EQU_WRIST]) . "</a>\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td>{$lang_item['armor']}:</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input type=\"text\" name=\"armor\" size=\"10\" maxlength=\"6\" value=\"{$char_data[CHAR_DATA_OFFSET_ARMOR]}\" />\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td>{$lang_char['melee_ap']}: \n\t\t\t\t\t\t\t<input type=\"text\" name=\"attack_power\" size=\"10\" maxlength=\"6\" value=\"{$char_data[CHAR_DATA_OFFSET_AP]}\" />\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>{$lang_char['ranged_ap']}: \n\t\t\t\t\t\t\t<input type=\"text\" name=\"range_attack_power\" size=\"10\" maxlength=\"6\" value=\"{$char_data[CHAR_DATA_OFFSET_RANGED_AP]}\" />\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td>{$lang_item['trinket']} 2<br />\n\t\t\t\t\t\t\t<a href=\"{$item_datasite}{$char_data[CHAR_DATA_OFFSET_EQU_TRINKET2]}\" target=\"_blank\">" . get_item_name($char_data[CHAR_DATA_OFFSET_EQU_TRINKET2]) . "</a>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input type=\"checkbox\" name=\"check[]\" value=\"a13\" />\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input type=\"checkbox\" name=\"check[]\" value=\"a15\" />\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td colspan=\"2\">{$lang_item['main_hand']}<br />\n\t\t\t\t\t\t\t<a href=\"{$item_datasite}{$char_data[CHAR_DATA_OFFSET_EQU_MAIN_HAND]}\" target=\"_blank\">" . get_item_name($char_data[CHAR_DATA_OFFSET_EQU_MAIN_HAND]) . "</a>\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td colspan=\"2\">\n\t\t\t\t\t\t\t<input type=\"checkbox\" name=\"check[]\" value=\"a16\" /> {$lang_item['off_hand']}<br />\n\t\t\t\t\t\t\t<a href=\"{$item_datasite}{$char_data[CHAR_DATA_OFFSET_EQU_OFF_HAND]}\" target=\"_blank\">" . get_item_name($char_data[CHAR_DATA_OFFSET_EQU_OFF_HAND]) . "</a>\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td colspan=\"2\">{$lang_item['ranged']}<br />\n\t\t\t\t\t\t\t<a href=\"{$item_datasite}{$char_data[CHAR_DATA_OFFSET_EQU_RANGED]}\" target=\"_blank\">" . get_item_name($char_data[CHAR_DATA_OFFSET_EQU_RANGED]) . "</a>\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input type=\"checkbox\" name=\"check[]\" value=\"a17\" />\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\t\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td colspan=\"8\">{$lang_char['block']} : \n\t\t\t\t\t\t\t<input type=\"text\" name=\"block\" size=\"5\" maxlength=\"3\" value=\"{$block}\" />%\r\n\t\t\t\t\t\t\t| {$lang_char['dodge']}: <input type=\"text\" name=\"dodge\" size=\"5\" maxlength=\"3\" value=\"{$dodge}\" />%\r\n\t\t\t\t\t\t\t| {$lang_char['parry']}: <input type=\"text\" name=\"parry\" size=\"5\" maxlength=\"3\" value=\"{$parry}\" />%\r\n\t\t\t\t\t\t\t| {$lang_char['melee_crit']}: <input type=\"text\" name=\"crit\" size=\"5\" maxlength=\"3\" value=\"{$crit}\" />%\r\n\t\t\t\t\t\t\t| {$lang_char['ranged_crit']}: <input type=\"text\" name=\"range_crit\" size=\"3\" maxlength=\"14\" value=\"{$range_crit}\" />%\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td colspan=\"4\">{$lang_char['gold']}: \n\t\t\t\t\t\t\t<input type=\"text\" name=\"money\" size=\"10\" maxlength=\"8\" value=\"{$char[30]}\" />\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td colspan=\"4\">{$lang_char['tot_paly_time']}: \n\t\t\t\t\t\t\t<input type=\"text\" name=\"tot_time\" size=\"8\" maxlength=\"14\" value=\"{$char[10]}\" />\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td colspan=\"5\">{$lang_char['location']}:\r\n\t\t\t\t\t\t\tX:<input type=\"text\" name=\"x\" size=\"10\" maxlength=\"8\" value=\"{$char[6]}\" />\r\n\t\t\t\t\t\t\tY:<input type=\"text\" name=\"y\" size=\"8\" maxlength=\"16\" value=\"{$char[7]}\" />\r\n\t\t\t\t\t\t\tZ:<input type=\"text\" name=\"z\" size=\"8\" maxlength=\"16\" value=\"{$char[11]}\" />\r\n\t\t\t\t\t\t\tMap:<input type=\"text\" name=\"map\" size=\"8\" maxlength=\"16\" value=\"{$char[8]}\" />\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t\t<td colspan=\"3\">{$lang_char['move_to']}: \n\t\t\t\t\t\t\t<input type=\"text\" name=\"tp_to\" size=\"24\" maxlength=\"64\" value=\"\" />\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table>\n\t\t<br />"; //inventory+bank items $sql->connect($characters_db[$realm_id]['addr'], $characters_db[$realm_id]['user'], $characters_db[$realm_id]['pass'], $characters_db[$realm_id]['name']); $query2 = $sql->query("SELECT bag,slot,item,item_template FROM character_inventory WHERE guid = '{$id}' ORDER BY bag,slot"); $inv = array(); $count = 0; while ($slot = $sql->fetch_row($query2)) { if ($slot[0] == 0) { if ($slot[1] >= 23 && $slot[1] <= 62) { $count++; $inv[$count][0] = $slot[3]; $inv[$count][1] = $slot[2]; } } else { $count++; $inv[$count][0] = $slot[3]; $inv[$count][1] = $slot[2]; } } $output .= "<table class=\"lined\">\r\n\t\t\t<tr>\n\t\t\t\t<td>{$lang_char['inv_bank']}</td>\n\t\t\t</tr>\r\n\t\t\t<tr>\n\t\t\t\t<td height=\"100\" align=\"center\">\r\n\t\t\t\t\t<table>\n\t\t\t\t\t\t<tr align=\"center\">"; $j = 0; for ($i = 1; $i <= $count; $i++) { $j++; $output .= "<td>\n\t\t\t\t\t\t\t\t\t<a href=\"{$item_datasite}{$inv[$i][0]}\" target=\"_blank\">{$inv[$i][0]}</a>\n\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t<input type=\"checkbox\" name=\"check[]\" value=\"{$inv[$i][1]}\" />\n\t\t\t\t\t\t\t\t\t</td>"; if ($j == 15) { $output .= "</tr>\n\t\t\t\t\t\t\t\t\t\t<tr align=\"center\">"; $j = 0; } } $output .= "\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t</table>\r\n\t<br />\r\n\t<table class=\"hidden\">\r\n\t\t<tr>\n\t\t\t<td>"; makebutton($lang_char['update'], "javascript:do_submit()", 190); makebutton($lang_char['to_char_view'], "char.php?id={$id}", 160); makebutton($lang_char['del_char'], "char_list.php?action=del_char_form&check%5B%5D={$id}", 160); makebutton($lang_global['back'], "javascript:window.history.back()", 160); $output .= "\n\t\t\t</td>\n\t\t</tr>\r\n\t</table>\n<br />\r\n</form>\n</center>"; //case of non auth request } else { $sql->close(); unset($sql); error($lang_char['no_permission']); exit; } } else { error($lang_char['no_char_found']); } }
function char_quest(&$sqlr, &$sqlc) { global $output, $lang_global, $lang_char, $realm_id, $world_db, $characters_db, $action_permission, $user_lvl, $user_name, $quest_datasite, $itemperpage; wowhead_tt(); require_once 'core/char/char_security.php'; //==========================$_GET and SECURE================================= $start = isset($_GET['start']) ? $sqlc->quote_smart($_GET['start']) : 0; if (is_numeric($start)) { } else { $start = 0; } $order_by = isset($_GET['order_by']) ? $sqlc->quote_smart($_GET['order_by']) : 1; if (is_numeric($order_by)) { } else { $order_by = 1; } $dir = isset($_GET['dir']) ? $sqlc->quote_smart($_GET['dir']) : 0; if (preg_match('/^[01]{1}$/', $dir)) { } else { $dir = 0; } $order_dir = $dir ? 'ASC' : 'DESC'; $dir = $dir ? 0 : 1; //==========================$_GET and SECURE end============================= $result = $sqlc->query('SELECT account, name, race, class, level, gender FROM characters WHERE guid = ' . $id . ' LIMIT 1'); if ($sqlc->num_rows($result)) { $char = $sqlc->fetch_assoc($result); $owner_acc_id = $sqlc->result($result, 0, 'account'); $result = $sqlr->query('SELECT `username`, `gmlevel` FROM `account` LEFT JOIN `account_access` ON `account`.`id`=`account_access`.`id` WHERE `account`.`id` = ' . $owner_acc_id . ' ORDER BY `gmlevel` DESC LIMIT 1'); $owner_name = $sqlr->result($result, 0, 'username'); $owner_gmlvl = $sqlr->result($result, 0, 'gmlevel'); if (empty($owner_gmlvl)) { $owner_gmlvl = 0; } if ($user_lvl > $owner_gmlvl || $owner_name === $user_name) { $output .= ' <center> <div id="tab_content"> <h1>' . $lang_char['quests'] . '</h1> <br />'; require_once 'core/char/char_header.php'; $output .= ' <br /><br /> <table class="lined" style="width: 550px;"> <tr> <th width="10%"><a href="char_quest.php?id=' . $id . '&realm=' . $realmid . '&start=' . $start . '&order_by=0&dir=' . $dir . '"' . ($order_by == 0 ? ' class="' . $order_dir . '"' : '') . '>' . $lang_char['quest_id'] . '</a></th> <th width="7%"><a href="char_quest.php?id=' . $id . '&realm=' . $realmid . '&start=' . $start . '&order_by=1&dir=' . $dir . '"' . ($order_by == 1 ? ' class="' . $order_dir . '"' : '') . '>' . $lang_char['quest_level'] . '</a></th> <th width="78%"><a href="char_quest.php?id=' . $id . '&realm=' . $realmid . '&start=' . $start . '&order_by=2&dir=' . $dir . '"' . ($order_by == 2 ? ' class="' . $order_dir . '"' : '') . '>' . $lang_char['quest_title'] . '</a></th> <th width="5%"><img src="img/aff_qst.png" width="14" height="14" border="0" alt="" /></th> </tr>'; $result = $sqlc->query('SELECT quest, status FROM character_queststatus WHERE guid = ' . $id . ' AND ( status = 3 OR status = 1 ) ORDER BY status DESC'); $quests_1 = array(); $quests_3 = array(); if ($sqlc->num_rows($result)) { while ($quest = $sqlc->fetch_assoc($result)) { $deplang = get_lang_id(); $query1 = $sqlc->query('SELECT Level, IFNULL(' . ($deplang != 0 ? '`title_loc' . $deplang . '`' : 'NULL') . ', title) as Title FROM `' . $world_db[$realmid]['name'] . '`.`quest_template` LEFT JOIN `' . $world_db[$realmid]['name'] . '`.`locales_quest` ON `quest_template`.`id` = `locales_quest`.`entry` WHERE `quest_template`.`id` = \'' . $quest['quest'] . '\''); $quest_info = $sqlc->fetch_assoc($query1); if (1 == $quest['status']) { array_push($quests_1, array($quest['quest'], $quest_info['QuestLevel'], $quest_info['Title'], $quest['rewarded'])); } else { array_push($quests_3, array($quest['quest'], $quest_info['QuestLevel'], $quest_info['Title'])); } } unset($quest); unset($quest_info); aasort($quests_1, $order_by, $dir); $orderby = $order_by; if (2 < $orderby) { $orderby = 1; } aasort($quests_3, $orderby, $dir); $all_record = count($quests_1); foreach ($quests_3 as $data) { $output .= ' <tr> <td>' . $data[0] . '</td> <td>(' . $data[1] . ')</td> <td align="left"><a href="' . $quest_datasite . $data[0] . '" target="_blank">' . htmlentities($data[2]) . '</a></td> <td><img src="img/aff_qst.png" width="14" height="14" alt="" /></td> </tr>'; } unset($quest_3); if (count($quests_1)) { $output .= ' </table> <table class="hidden" style="width: 550px;"> <tr align="right"> <td>'; $output .= generate_pagination('char_quest.php?id=' . $id . '&realm=' . $realmid . '&start=' . $start . '&order_by=' . $order_by . '&dir=' . ($dir ? 0 : 1), $all_record, $itemperpage, $start); $output .= ' </td> </tr> </table> <table class="lined" style="width: 550px;"> <tr> <th width="10%"><a href="char_quest.php?id=' . $id . '&realm=' . $realmid . '&start=' . $start . '&order_by=0&dir=' . $dir . '"' . ($order_by == 0 ? ' class="' . $order_dir . '"' : '') . '>' . $lang_char['quest_id'] . '</a></th> <th width="7%"><a href="char_quest.php?id=' . $id . '&realm=' . $realmid . '&start=' . $start . '&order_by=1&dir=' . $dir . '"' . ($order_by == 1 ? ' class="' . $order_dir . '"' : '') . '>' . $lang_char['quest_level'] . '</a></th> <th width="68%"><a href="char_quest.php?id=' . $id . '&realm=' . $realmid . '&start=' . $start . '&order_by=2&dir=' . $dir . '"' . ($order_by == 2 ? ' class="' . $order_dir . '"' : '') . '>' . $lang_char['quest_title'] . '</a></th> <th width="10%"><a href="char_quest.php?id=' . $id . '&realm=' . $realmid . '&start=' . $start . '&order_by=3&dir=' . $dir . '"' . ($order_by == 3 ? ' class="' . $order_dir . '"' : '') . '>' . $lang_char['rewarded'] . '</a></th> <th width="5%"><img src="img/aff_tick.png" width="14" height="14" border="0" alt="" /></th> </tr>'; $i = 0; foreach ($quests_1 as $data) { if ($i < $start + $itemperpage && $i >= $start) { $output .= ' <tr> <td>' . $data[0] . '</td> <td>(' . $data[1] . ')</td> <td align="left"><a href="' . $quest_datasite . $data[0] . '" target="_blank">' . htmlentities($data[2]) . '</a></td> <td><img src="img/aff_' . ($data[3] ? 'tick' : 'qst') . '.png" width="14" height="14" alt="" /></td> <td><img src="img/aff_tick.png" width="14" height="14" alt="" /></td> </tr>'; } $i++; } unset($data); unset($quest_1); $output .= ' <tr align="right"> <td colspan="5">'; $output .= generate_pagination('char_quest.php?id=' . $id . '&realm=' . $realmid . '&start=' . $start . '&order_by=' . $order_by . '&dir=' . ($dir ? 0 : 1), $all_record, $itemperpage, $start); $output .= ' </td> </tr>'; } } else { $output .= ' <tr> <td colspan="4"><p>' . $lang_char['no_act_quests'] . '</p></td> </tr>'; } //---------------Page Specific Data Ends here---------------------------- //---------------Character Tabs Footer----------------------------------- $output .= ' </table> </div> </div> <br />'; require_once 'core/char/char_footer.php'; $output .= ' <br /> </center> <!-- end of char_quest.php -->'; } else { error($lang_char['no_permission']); } } else { error($lang_char['no_char_found']); } }
function browse_auctions(&$sqlr, &$sqlc) { global $lang_auctionhouse, $lang_global, $lang_item, $output, $characters_db, $world_db, $realm_id, $itemperpage, $item_datasite, $server, $user_lvl, $user_id; wowhead_tt(); $red = "\"#DD5047\""; $blue = "\"#0097CD\""; $sidecolor = array(1 => $blue, 2 => $red, 3 => $blue, 4 => $blue, 5 => $red, 6 => $red, 7 => $blue, 8 => $red, 10 => $red); $hiddencols = array(1, 8, 9, 10); //$sqlc = new SQL; //$sqlc->connect($characters_db[$realm_id]['addr'], $characters_db[$realm_id]['user'], $characters_db[$realm_id]['pass'], $characters_db[$realm_id]['name']); //==========================$_GET and SECURE================================= $start = isset($_GET['start']) ? $sqlc->quote_smart($_GET['start']) : 0; if (is_numeric($start)) { } else { $start = 0; } $order_by = isset($_GET['order_by']) ? $sqlc->quote_smart($_GET['order_by']) : "time"; if (!preg_match("/^[_[:lower:]]{1,15}\$/", $order_by)) { $order_by = "time"; } $dir = isset($_GET['dir']) ? $sqlc->quote_smart($_GET['dir']) : 1; if (!preg_match("/^[01]{1}\$/", $dir)) { $dir = 1; } $order_dir = $dir ? "ASC" : "DESC"; $dir = $dir ? 0 : 1; //==========================$_GET and SECURE end============================= if (!$user_lvl && !$server[$realm_id]['both_factions']) { $result = $sqlc->query("\n\t\t\tSELECT `race` FROM `characters` \n\t\t\tWHERE `account` = {$user_id} AND `totaltime` = (SELECT MAX(totaltime) \n\t\t\tFROM `characters` WHERE `account` = {$user_id}) LIMIT 1"); if ($sqlc->num_rows($result)) { $order_side = in_array($sqlc->result($result, 0, 'race'), array(2, 5, 6, 8, 10)) ? " AND `characters`.`race` IN (2,5,6,8,10) " : " AND `characters`.`race` IN (1,3,4,7,11) "; } else { $order_side = ""; } } else { $order_side = ""; } //==========================Browse/Search CHECK============================== $search_by = ''; $search_value = ''; $search_filter = ''; $search_class = -1; $search_quality = -1; if (isset($_GET['search_value']) && isset($_GET['search_by']) || isset($_GET['search_class']) || isset($_GET['search_quality'])) { $search_value = $sqlc->quote_smart($_GET['search_value']); $search_by = $sqlc->quote_smart($_GET['search_by']); $search_class = $sqlc->quote_smart($_GET['search_class']); $search_quality = $sqlc->quote_smart($_GET['search_quality']); switch ($search_by) { case "item_name": if (($search_class >= 0 || $search_quality >= 0) && !isset($search_value)) { if ($search_class >= 0) { $search_filter = "AND item_template.class = '{$search_class}'"; } if ($search_quality >= 0) { $search_filter = "AND item_template.Quality = '{$search_quality}'"; } } else { $item_prefix = ""; if ($search_class >= 0) { $item_prefix .= "AND item_template.class = '{$search_class}' "; } if ($search_quality >= 0) { $item_prefix .= "AND item_template.Quality = '{$search_quality}' "; } $result = $sqlc->query("\n\t\t\t\t\t\tSELECT `entry` \n\t\t\t\t\t\tFROM `" . $world_db[$realm_id]['name'] . "`.`item_template`\n\t\t\t\t\t\tWHERE `name` LIKE '%{$search_value}%' {$item_prefix}"); $search_filter = "AND auction.item_template IN(0"; while ($item = $sqlc->fetch_row($result)) { $search_filter .= ", {$item['0']}"; } $search_filter .= ")"; } break; case "item_id": $search_filter = "AND auction.item_template = '{$search_value}'"; break; case "seller_name": if (($search_class >= 0 || $search_quality >= 0) && !isset($search_value)) { if ($search_class >= 0) { $search_filter = "AND item_template.class = '{$search_class}'"; } if ($search_quality >= 0) { $search_filter = "AND item_template.Quality = '{$search_quality}'"; } } else { $item_prefix = ""; if ($search_class >= 0) { $item_prefix .= "AND item_template.class = '{$search_class}' "; } if ($search_quality >= 0) { $item_prefix .= "AND item_template.Quality = '{$search_quality}' "; } $result = $sqlc->query("\n\t\t\t\t\t\tSELECT `guid` \n\t\t\t\t\t\tFROM `characters` \n\t\t\t\t\t\tWHERE `name` LIKE '%{$search_value}%'"); $search_filter = $item_prefix; $search_filter .= "AND auction.itemowner IN(0"; while ($char = $sqlc->fetch_row($result)) { $search_filter .= ", {$char['0']}"; } $search_filter .= ")"; $search_filter .= $item_prefix; } break; case "buyer_name": if (($search_class >= 0 || $search_quality >= 0) && !isset($search_value)) { if ($search_class >= 0) { $search_filter = "AND item_template.class = '{$search_class}'"; } if ($search_quality >= 0) { $search_filter = "AND item_template.Quality = '{$search_quality}'"; } } else { $item_prefix = ""; if ($search_class >= 0) { $item_prefix .= "AND item_template.class = '{$search_class}' "; } if ($search_quality >= 0) { $item_prefix .= "AND item_template.Quality = '{$search_quality}' "; } $result = $sqlc->query("\n\t\t\t\t\t\tSELECT guid \n\t\t\t\t\t\tFROM `characters` \n\t\t\t\t\t\tWHERE name LIKE '%{$search_value}%'"); $search_filter = $item_prefix; $search_filter .= "AND auction.buyguid IN(-1"; while ($char = $sqlc->fetch_row($result)) { $search_filter .= ", {$char['0']}"; } $search_filter .= ")"; } break; default: redirect("ahstats.php?error=1"); } $query_1 = $sqlc->query("\n\t\t\tSELECT count(*) \n\t\t\tFROM `" . $characters_db[$realm_id]['name'] . "`.`characters` , `" . $characters_db[$realm_id]['name'] . "`.`item_instance` , `" . $world_db[$realm_id]['name'] . "`.`item_template` , `" . $characters_db[$realm_id]['name'] . "`.`auction` LEFT JOIN `" . $characters_db[$realm_id]['name'] . "`.`characters` c2 ON `c2`.`guid`=`auction`.`buyguid` \n\t\t\tWHERE `auction`.`itemowner`=`characters`.`guid` AND `auction`.`item_template`=`item_template`.`entry` AND `auction`.`itemguid`=`item_instance`.`guid` {$search_filter} {$order_side}"); } else { $query_1 = $sqlc->query("\n\t\t\tSELECT count(*) \n\t\t\tFROM auction"); } $result = $sqlc->query("\n\t\tSELECT `characters`.`name` AS `seller`, `auction`.`item_template` AS `itemid`, `item_template`.`name` AS `itemname`, `auction`.`buyoutprice` AS `buyout`, `auction`.`time`-unix_timestamp(), `c2`.`name` AS `encherisseur`, `auction`.`lastbid`, `auction`.`startbid`, SUBSTRING_INDEX(SUBSTRING_INDEX(`item_instance`.`data`, ' ',15), ' ',-1) AS qty, `characters`.`race` AS seller_race, `c2`.`race` AS buyer_race \n\t\tFROM `" . $characters_db[$realm_id]['name'] . "`.`characters` , `" . $characters_db[$realm_id]['name'] . "`.`item_instance` , `" . $world_db[$realm_id]['name'] . "`.`item_template` , `" . $characters_db[$realm_id]['name'] . "`.`auction` LEFT JOIN `" . $characters_db[$realm_id]['name'] . "`.`characters` c2 ON `c2`.`guid`=`auction`.`buyguid` \n\t\tWHERE `auction`.`itemowner`=`characters`.`guid` AND `auction`.`item_template`=`item_template`.`entry` AND `auction`.`itemguid`=`item_instance`.`guid` {$search_filter} {$order_side} \n\t\tORDER BY `auction`.`{$order_by}` {$order_dir} LIMIT {$start}, {$itemperpage}"); $all_record = $sqlc->result($query_1, 0); //=====================top tage navigaion starts here======================== $output .= "\n <center>\n <table class=\"top_hidden\">\n <tr>\n <td width=\"80%\">\n <form action=\"ahstats.php\" method=\"get\" name=\"form\">\n <input type=\"hidden\" name=\"error\" value=\"2\" />\n <table class=\"hidden\">\n <tr>\n <td>\n <input type=\"text\" size=\"24\" name=\"search_value\" value=\"{$search_value}\" />\n </td>\n <td>\n <select name=\"search_by\">\n <option" . ($search_by == 'item_name' ? " selected=\"selected\"" : "") . " value=\"item_name\">{$lang_auctionhouse['item_name']}</option>\n <option" . ($search_by == 'item_id' ? " selected=\"selected\"" : "") . " value=\"item_id\">{$lang_auctionhouse['item_id']}</option>\n <option" . ($search_by == 'seller_name' ? " selected=\"selected\"" : "") . " value=\"seller_name\">{$lang_auctionhouse['seller_name']}</option>\n <option" . ($search_by == 'buyer_name' ? " selected=\"selected\"" : "") . " value=\"buyer_name\">{$lang_auctionhouse['buyer_name']}</option>\n </select>\n </td>\n <td>\n <select name=\"search_class\">\n <option" . ($search_class == -1 ? " selected=\"selected\"" : "") . " value=\"-1\">{$lang_auctionhouse['all']}</option>\n <option" . ($search_class == 0 ? " selected=\"selected\"" : "") . " value=\"0\">{$lang_item['consumable']}</option>\n <option" . ($search_class == 1 ? " selected=\"selected\"" : "") . " value=\"1\">{$lang_item['bag']}</option>\n <option" . ($search_class == 2 ? " selected=\"selected\"" : "") . " value=\"2\">{$lang_item['weapon']}</option>\n <option" . ($search_class == 4 ? " selected=\"selected\"" : "") . " value=\"4\">{$lang_item['armor']}</option>\n <option" . ($search_class == 5 ? " selected=\"selected\"" : "") . " value=\"5\">{$lang_item['reagent']}</option>\n <option" . ($search_class == 7 ? " selected=\"selected\"" : "") . " value=\"7\">{$lang_item['trade_goods']}</option>\n <option" . ($search_class == 9 ? " selected=\"selected\"" : "") . " value=\"9\">{$lang_item['recipe']}</option>\n <option" . ($search_class == 11 ? " selected=\"selected\"" : "") . " value=\"11\">{$lang_item['quiver']}</option>\n <option" . ($search_class == 14 ? " selected=\"selected\"" : "") . " value=\"14\">{$lang_item['permanent']}</option>\n <option" . ($search_class == 15 ? " selected=\"selected\"" : "") . " value=\"15\">{$lang_item['misc_short']}</option>\n </select>\n </td>\n <td>\n <select name=\"search_quality\">\n <option" . ($search_quality == -1 ? " selected=\"selected\"" : "") . " value=\"-1\">{$lang_auctionhouse['all']}</option>\n <option" . ($search_quality == 0 ? " selected=\"selected\"" : "") . " value=\"0\">{$lang_item['poor']}</option>\n <option" . ($search_quality == 1 ? " selected=\"selected\"" : "") . " value=\"1\">{$lang_item['common']}</option>\n <option" . ($search_quality == 2 ? " selected=\"selected\"" : "") . " value=\"2\">{$lang_item['uncommon']}</option>\n <option" . ($search_quality == 3 ? " selected=\"selected\"" : "") . " value=\"3\">{$lang_item['rare']}</option>\n <option" . ($search_quality == 4 ? " selected=\"selected\"" : "") . " value=\"4\">{$lang_item['epic']}</option>\n <option" . ($search_quality == 5 ? " selected=\"selected\"" : "") . " value=\"5\">{$lang_item['legendary']}</option>\n <option" . ($search_quality == 6 ? " selected=\"selected\"" : "") . " value=\"6\">{$lang_item['artifact']}</option>\n </select>\n </td>\n <td>"; makebutton($lang_global['search'], "javascript:do_submit()", 80); $output .= "\n </td>\n <td>"; $search_by && $search_value || $search_class != -1 || $search_quality != -1 ? makebutton($lang_global['back'], "javascript:window.history.back()", 80) : ($output .= ""); $output .= "\n </td>\n </tr>\n </table>\n </form>\n </td>\n <td width=\"25%\" align=\"right\">"; $output .= generate_pagination("ahstats.php?order_by={$order_by}" . ($search_by && $search_value || $search_class != -1 || $search_quality != -1 ? "&search_by={$search_by}&search_value={$search_value}&search_quality={$search_quality}&search_class={$search_class}&error=2" : "") . "&dir=" . ($dir ? 0 : 1), $all_record, $itemperpage, $start); $output .= "\n </td>\n </tr>\n </table>\n <table class=\"lined\">\n <tr>\n <th width=\"10%\"><a href=\"ahstats.php?order_by=itemowner&start={$start}" . ($search_by && $search_value || $search_class != -1 || $search_quality != -1 ? "&search_by={$search_by}&search_value={$search_value}&search_quality={$search_quality}&search_class={$search_class}&error=2" : "") . "&dir={$dir}\">" . ($order_by == 'itemowner' ? "<img src=\"img/arr_" . ($dir ? "up" : "dw") . ".gif\" alt=\"\" /> " : "") . "{$lang_auctionhouse['seller']}</a></th>\n <th width=\"20%\"><a href=\"ahstats.php?order_by=item_template&start={$start}" . ($search_by && $search_value || $search_class != -1 || $search_quality != -1 ? "&search_by={$search_by}&search_value={$search_value}&search_quality={$search_quality}&search_class={$search_class}&error=2" : "") . "&dir={$dir}\">" . ($order_by == 'item_template' ? "<img src=\"img/arr_" . ($dir ? "up" : "dw") . ".gif\" alt=\"\" /> " : "") . "{$lang_auctionhouse['item']}</a></th>\n <th width=\"15%\"><a href=\"ahstats.php?order_by=buyoutprice&start={$start}" . ($search_by && $search_value || $search_class != -1 || $search_quality != -1 ? "&search_by={$search_by}&search_value={$search_value}&search_quality={$search_quality}&search_class={$search_class}&error=2" : "") . "&dir={$dir}\">" . ($order_by == 'buyoutprice' ? "<img src=\"img/arr_" . ($dir ? "up" : "dw") . ".gif\" alt=\"\" /> " : "") . "{$lang_auctionhouse['buyoutprice']}</a></th>\n <th width=\"15%\"><a href=\"ahstats.php?order_by=time&start={$start}" . ($search_by && $search_value || $search_class != -1 || $search_quality != -1 ? "&search_by={$search_by}&search_value={$search_value}&search_quality={$search_quality}&search_class={$search_class}&error=2" : "") . "&dir={$dir}\">" . ($order_by == 'time' ? "<img src=\"img/arr_" . ($dir ? "up" : "dw") . ".gif\" alt=\"\" /> " : "") . "{$lang_auctionhouse['timeleft']}</a></th>\n <th width=\"10%\"><a href=\"ahstats.php?order_by=buyguid&start={$start}" . ($search_by && $search_value || $search_class != -1 || $search_quality != -1 ? "&search_by={$search_by}&search_value={$search_value}&search_quality={$search_quality}&search_class={$search_class}&error=2" : "") . "&dir={$dir}\">" . ($order_by == 'buyguid' ? "<img src=\"img/arr_" . ($dir ? "up" : "dw") . ".gif\" alt=\"\" /> " : "") . "{$lang_auctionhouse['buyer']}</a></th>\n <th width=\"15%\"><a href=\"ahstats.php?order_by=lastbid&start={$start}" . ($search_by && $search_value || $search_class != -1 || $search_quality != -1 ? "&search_by={$search_by}&search_value={$search_value}&search_quality={$search_quality}&search_class={$search_class}&error=2" : "") . "&dir={$dir}\">" . ($order_by == 'lastbid' ? "<img src=\"img/arr_" . ($dir ? "up" : "dw") . ".gif\" alt=\"\" /> " : "") . "{$lang_auctionhouse['lastbid']}</a></th>\n <th width=\"15%\"><a href=\"ahstats.php?order_by=startbid&start={$start}" . ($search_by && $search_value || $search_class != -1 || $search_quality != -1 ? "&search_by={$search_by}&search_value={$search_value}&search_quality={$search_quality}&search_class={$search_class}&error=2" : "") . "&dir={$dir}\">" . ($order_by == 'startbid' ? "<img src=\"img/arr_" . ($dir ? "up" : "dw") . ".gif\" alt=\"\" /> " : "") . "{$lang_auctionhouse['firstbid']}</a></th>\n </tr>"; global $mmfpm_db, $world_db; $sqlm = new SQL(); $sqlm->connect($mmfpm_db['addr'], $mmfpm_db['user'], $mmfpm_db['pass'], $mmfpm_db['name']); $sqlw = new SQL(); $sqlw->connect($world_db[$realm_id]['addr'], $world_db[$realm_id]['user'], $world_db[$realm_id]['pass'], $world_db[$realm_id]['name']); while ($rows = $sqlc->fetch_row($result)) { $output .= "\n <tr>"; foreach ($rows as $row => $value) { switch ($row) { case 4: $value = $value >= 0 ? floor($value / 86400) . $lang_auctionhouse['dayshortcut'] . " " . floor($value % 86400 / 3600) . $lang_auctionhouse['hourshortcut'] . " " . floor($value % 86400 % 3600 / 60) . $lang_auctionhouse['mnshortcut'] : $lang_auctionhouse['auction_over']; break; case 5: $value = "<b>" . (!empty($rows[10]) ? "<font color=" . $sidecolor[$rows[10]] . ">" . htmlentities($value) . "</font>" : "N/A") . "</b>"; break; case 7: case 6: case 3: $g = floor($value / 10000); $value -= $g * 10000; $s = floor($value / 100); $value -= $s * 100; $c = $value; $value = $g . "<img src=\"./img/gold.gif\" alt=\"\" /> " . $s . "<img src=\"./img/silver.gif\" alt=\"\" /> " . $c . "<img src=\"./img/copper.gif\" alt=\"\" /> "; break; case 2: $value = "<a href=\"{$item_datasite}{$rows['1']}\" target=\"_blank\" onmouseover=\"toolTip()\"><img src=\"" . get_item_icon($rows[1], $sqlm, $sqlw) . "\" class=\"" . get_item_border($rows[1], $sqlw) . "\" alt=\"{$value}\" /><br/>{$value}" . ($rows[8] > 1 ? " (x{$rows['8']})" : "") . "</a>"; break; case 0: $value = "<b>" . (!empty($rows[9]) ? "<font color=" . $sidecolor[$rows[9]] . ">" . htmlentities($value) . "</font>" : "N/A") . "</b>"; break; } if (!in_array($row, $hiddencols)) { $output .= "\n <td>\n <center>\n " . $value . "\n </center>\n </td>"; } } $output .= "\n </tr>"; } $output .= "\n <tr>\n <td colspan=\"7\" class=\"hidden\" align=\"right\" width=\"25%\">"; $output .= generate_pagination("ahstats.php?order_by={$order_by}" . ($search_by && $search_value || $search_class != -1 || $search_quality != -1 ? "&search_by={$search_by}&search_value={$search_value}&search_quality={$search_quality}&search_class={$search_class}&error=2" : "") . "&dir=" . ($dir ? 0 : 1), $all_record, $itemperpage, $start); $output .= "\n </td>\n </tr>\n <tr>\n <td colspan=\"7\" class=\"hidden\" align=\"right\">{$lang_auctionhouse['total_auctions']} : {$all_record}\n </td>\n </tr>\n </table>\n </center>"; }
function char_achievements() { global $output, $logon_db, $site_encoding, $realm_id, $characters_db, $corem_db, $action_permission, $user_lvl, $user_name, $base_datasite, $achievement_datasite, $sql, $core; // this page uses wowhead tooltops wowhead_tt(); // we need at least an id or we would have nothing to show if (empty($_GET["id"])) { error(lang("global", "empty_fields")); } // this is multi realm support, as of writing still under development // this page is already implementing it if (empty($_GET["realm"])) { $realmid = $realm_id; } else { $realmid = $sql["logon"]->quote_smart($_GET["realm"]); if (is_numeric($realmid)) { $sql["char"]->connect($characters_db[$realmid]['addr'], $characters_db[$realmid]['user'], $characters_db[$realmid]['pass'], $characters_db[$realmid]['name'], $characters_db[$realmid]["encoding"]); } else { $realmid = $realm_id; } } //-------------------SQL Injection Prevention-------------------------------- // no point going further if we don have a valid ID $id = $sql["char"]->quote_smart($_GET["id"]); if (!is_numeric($id)) { error(lang("global", "empty_fields")); } $show_type = isset($_POST["show_type"]) ? $sql["char"]->quote_smart($_POST["show_type"]) : 0; if (!is_numeric($show_type)) { $show_type = 0; } // getting character data from database if ($core == 1) { $result = $sql["char"]->query("SELECT acct, name, race, class, level, gender\n FROM characters WHERE guid='" . $id . "' LIMIT 1"); } else { $result = $sql["char"]->query("SELECT account AS acct, name, race, class, level, gender\n FROM characters WHERE guid='" . $id . "' LIMIT 1"); } // no point going further if character does not exist if ($sql["char"]->num_rows($result)) { $char = $sql["char"]->fetch_assoc($result); // we get user permissions first $owner_acc_id = $sql["char"]->result($result, 0, 'acct'); if ($core == 1) { $result = $sql["logon"]->query("SELECT login FROM accounts WHERE acct='" . $char["acct"] . "'"); } else { $result = $sql["logon"]->query("SELECT username AS login FROM account WHERE id='" . $char["acct"] . "'"); } $owner_name = $sql["logon"]->result($result, 0, 'login'); $s_query = "SELECT *, SecurityLevel AS gm FROM config_accounts WHERE Login='******'"; $s_result = $sql["mgr"]->query($s_query); $s_fields = $sql["mgr"]->fetch_assoc($s_result); $owner_gmlvl = $s_fields["gm"]; $view_mod = $s_fields["View_Mod_Achieve"]; if ($owner_gmlvl >= 1073741824) { $owner_gmlvl -= 1073741824; } // owner configured overrides $view_override = false; if ($view_mod > 0) { if ($view_mod == 1) { } elseif ($view_mod == 2) { // only registered users may view this page if ($user_lvl > -1) { $view_override = true; } } } // visibility overrides for specific tabs $view_inv_override = false; if ($s_fields["View_Mod_Inv"] > 0) { if ($s_fields["View_Mod_Inv"] == 1) { } elseif ($s_fields["View_Mod_Inv"] == 2) { // only registered users may view this tab if ($user_lvl > -1) { $view_inv_override = true; } } } else { if ($user_lvl > $owner_gmlvl || $owner_name === $user_name || $user_lvl == $action_permission["delete"]) { $view_inv_override = true; } } $view_talent_override = false; if ($s_fields["View_Mod_Talent"] > 0) { if ($s_fields["View_Mod_Talent"] == 1) { } elseif ($s_fields["View_Mod_Talent"] == 2) { // only registered users may view this tab if ($user_lvl > -1) { $view_talent_override = true; } } } else { if ($user_lvl > $owner_gmlvl || $owner_name === $user_name || $user_lvl == $action_permission["delete"]) { $view_talent_override = true; } } $view_quest_override = false; if ($s_fields["View_Mod_Quest"] > 0) { if ($s_fields["View_Mod_Quest"] == 1) { } elseif ($s_fields["View_Mod_Quest"] == 2) { // only registered users may view this tab if ($user_lvl > -1) { $view_quest_override = true; } } } else { if ($user_lvl > $owner_gmlvl || $owner_name === $user_name || $user_lvl == $action_permission["delete"]) { $view_quest_override = true; } } $view_friends_override = false; if ($s_fields["View_Mod_Friends"] > 0) { if ($s_fields["View_Mod_Friends"] == 1) { } elseif ($s_fields["View_Mod_Friends"] == 2) { // only registered users may view this tab if ($user_lvl > -1) { $view_friends_override = true; } } } else { if ($user_lvl > $owner_gmlvl || $owner_name === $user_name || $user_lvl == $action_permission["delete"]) { $view_friends_override = true; } } $view_view_override = false; if ($s_fields["View_Mod_View"] > 0) { if ($s_fields["View_Mod_View"] == 1) { } elseif ($s_fields["View_Mod_View"] == 2) { // only registered users may view this tab if ($user_lvl > -1) { $view_view_override = true; } } } else { if ($user_lvl > $owner_gmlvl || $owner_name === $user_name || $user_lvl == $action_permission["delete"]) { $view_view_override = true; } } // check user permission if ($view_override || $user_lvl > $owner_gmlvl || $owner_name === $user_name || $user_lvl == $action_permission["delete"]) { //------------------------Character Tabs--------------------------------- // we start with a lead of 10 spaces, // because last line of header is an opening tag with 8 spaces // keep html indent in sync, so debuging from browser source would be easy to read $output .= ' <!-- start of char_achieve.php --> <script type="text/javascript"> function expand(thistag) { var i = 0; %%REPLACE%% if ( thistag == \'tsummary\' ) { document.getElementById(\'tsummary\').style.display="table"; document.getElementById(\'divsummary\').innerHTML = \'[-] ' . lang("char", "summary") . '\' ; for ( x in main_cats ) { if ( document.getElementById(main_cats[x]).style.display=="table" ) { document.getElementById(main_cats[x]).style.display="none"; document.getElementById(main_cats_achieve[x]).style.display="none"; document.getElementById(main_cats_div[x]).innerHTML = \'[+] \' + main_cats_name[x]; } } for ( x in main_sub_cats ) { if ( document.getElementById(main_sub_cats_achieve[x]).style.display=="table" ) { document.getElementById(main_sub_cats_achieve[x]).style.display="none"; document.getElementById(main_sub_cats_div[x]).innerHTML = \'[+] \' + main_sub_cats_name[x]; } } } else { if ( document.getElementById(\'tsummary\').style.display="table" ) { document.getElementById(\'tsummary\').style.display="none"; document.getElementById(\'divsummary\').innerHTML = \'[+] ' . lang("char", "summary") . '\' ; } for ( x in main_cats ) { if ( main_cats[x] == thistag ) { i = 1; } } if ( i == 1 ) { for ( x in main_cats ) { if ( main_cats[x] == thistag ) { if ( document.getElementById(main_cats[x]).style.display=="table" ) { document.getElementById(main_cats[x]).style.display="none"; document.getElementById(main_cats_achieve[x]).style.display="none"; document.getElementById(main_cats_div[x]).innerHTML = \'[+] \' + main_cats_name[x]; document.getElementById(\'tsummary\').style.display="table"; document.getElementById(\'divsummary\').innerHTML = \'[-] ' . lang("char", "summary") . '\' ; } else { document.getElementById(main_cats[x]).style.display="table"; document.getElementById(main_cats_achieve[x]).style.display="table"; document.getElementById(main_cats_div[x]).innerHTML = \'[-] \' + main_cats_name[x]; } } else { if ( document.getElementById(main_cats[x]).style.display=="table" ) { document.getElementById(main_cats[x]).style.display="none"; document.getElementById(main_cats_achieve[x]).style.display="none"; document.getElementById(main_cats_div[x]).innerHTML = \'[+] \' + main_cats_name[x]; } } } for ( x in main_sub_cats ) { if ( document.getElementById(main_sub_cats_achieve[x]).style.display=="table" ) { document.getElementById(main_sub_cats_achieve[x]).style.display="none"; document.getElementById(main_sub_cats_div[x]).innerHTML = \'[+] \' + main_sub_cats_name[x]; } } } else if ( i == 0 ) { for ( x in main_sub_cats ) { if ( main_sub_cats[x] == thistag ) { if ( document.getElementById(main_sub_cats_achieve[x]).style.display=="table" ) { document.getElementById(main_sub_cats_achieve[x]).style.display="none"; document.getElementById(main_sub_cats_div[x]).innerHTML = \'[+] \' + main_sub_cats_name[x]; } else { document.getElementById(main_sub_cats_achieve[x]).style.display="table"; document.getElementById(main_sub_cats_div[x]).innerHTML = \'[-] \' + main_sub_cats_name[x]; } } else { if ( document.getElementById(main_sub_cats_achieve[x]).style.display=="table" ) { document.getElementById(main_sub_cats_achieve[x]).style.display="none"; document.getElementById(main_sub_cats_div[x]).innerHTML = \'[+] \' + main_sub_cats_name[x]; } } } for ( x in main_cats ) { if ( document.getElementById(main_cats_achieve[x]).style.display=="table" ) { document.getElementById(main_cats_achieve[x]).style.display="none"; } } } } } </script> <div class="tab"> <ul> <li><a href="char.php?id=' . $id . '&realm=' . $realmid . '">' . lang("char", "char_sheet") . '</a></li>'; if ($view_inv_override) { $output .= ' <li><a href="char_inv.php?id=' . $id . '&realm=' . $realmid . '">' . lang("char", "inventory") . '</a></li>'; } if ($view_talent_override) { $output .= ' ' . ($char["level"] < 10 ? '' : '<li><a href="char_talent.php?id=' . $id . '&realm=' . $realmid . '">' . lang("char", "talents") . '</a></li>') . ''; } $output .= ' <li class="selected"><a href="char_achieve.php?id=' . $id . '&realm=' . $realmid . '">' . lang("char", "achievements") . '</a></li>'; if ($view_quest_override) { $output .= ' <li><a href="char_quest.php?id=' . $id . '&realm=' . $realmid . '">' . lang("char", "quests") . '</a></li>'; } if ($view_friends_override) { $output .= ' <li><a href="char_friends.php?id=' . $id . '&realm=' . $realmid . '">' . lang("char", "friends") . '</a></li>'; } if ($view_view_override) { $output .= ' <li><a href="char_view.php?id=' . $id . '&realm=' . $realmid . '">' . lang("char", "view") . '</a></li>'; } $output .= ' </ul> </div> <div class="tab_content center center_text"> <span class="bold"> ' . htmlentities($char["name"], ENT_COMPAT, $site_encoding) . ' - <img src="img/c_icons/' . $char["race"] . '-' . $char["gender"] . '.gif" onmousemove="oldtoolTip(\'' . char_get_race_name($char["race"]) . '\', \'old_item_tooltip\')" onmouseout="oldtoolTip()" alt="" /> <img src="img/c_icons/' . $char["class"] . '.gif" onmousemove="oldtoolTip(\'' . char_get_class_name($char["class"]) . '\', \'old_item_tooltip\')" onmouseout="oldtoolTip()" alt="" /> - ' . lang("char", "level_short") . char_get_level_color($char["level"]) . ' </span> <br /><br />'; //---------------Page Specific Data Starts Here-------------------------- $output .= ' <table class="top_hidden" id="ch_ach_info"> <tr> <td style="width: 30%;"> </td> <td align="center"> %%REPLACE_POINTS%% </td> <td align="right" style="width: 20%;"> <div style="position: relative; float: left; top: 2px;">' . lang("char", "show") . ' :</div> <form action="char_achieve.php?id=' . $id . '&realm=' . $realmid . '" method="post" id="form"> <div> <select name="show_type"> <option value="1"' . ($show_type == 1 ? ' selected="selected"' : '') . '>' . lang("char", "all") . '</option> <option value="0"' . ($show_type == 0 ? ' selected="selected"' : '') . '>' . lang("char", "earned") . '</option> <option value="2"' . ($show_type == 2 ? ' selected="selected"' : '') . '>' . lang("char", "incomplete") . '</option> </select> </div> </form> </td> <td align="right" style="width: 20%;">'; makebutton("View", 'javascript:do_submit()', 130); $output .= ' </td> </tr> </table> <table class="lined" id="ch_ach_main"> <tr valign="top"> <td id="ch_ach_categories"> <table class="hidden" id="ch_ach_categories_list"> <tr> <th align="left"> <div id="divsummary" onclick="expand(\'tsummary\')">[-] ' . lang("char", "summary") . '</div> </th> </tr> <tr> <td> </td> </tr>'; $result = $sql["char"]->query("SELECT achievement, date FROM character_achievement WHERE guid='" . $id . "'"); $char_achieve = array(); while ($temp = $sql["char"]->fetch_assoc($result)) { $char_achieve[$temp["achievement"]] = $temp["date"]; } $result = $sql["char"]->query("SELECT achievement, date FROM character_achievement WHERE guid='" . $id . "' ORDER BY date DESC LIMIT 4"); $points = 0; $main_cats = achieve_get_main_category(); $sub_cats = achieve_get_sub_category(); $output_achieve_main_cat = array(); $output_u_achieve_main_cat = array(); $output_achieve_sub_cat = array(); $output_u_achieve_sub_cat = array(); $js_main_cats = ' var main_cats = new Array(); var main_cats_div = new Array(); var main_cats_name = new Array(); var main_cats_achieve = new Array(); var main_sub_cats = new Array(); var main_sub_cats_div = new Array(); var main_sub_cats_name = new Array(); var main_sub_cats_achieve = new Array();'; foreach ($main_cats as $cat_id => $cat) { if (isset($cat["Name"])) { $i = 0; $output_achieve_main_cat[$cat_id] = ''; $output_u_achieve_main_cat[$cat_id] = ''; $achieve_main_cat = achieve_get_id_category($cat["ID"]); foreach ($achieve_main_cat as $achieve_id => $cid) { if (isset($achieve_id) && isset($cid["id"])) { if (isset($char_achieve[$cid["id"]])) { if ($show_type < 2) { $cid["name01"] = str_replace('&', '&', $cid["name"]); $cid["description01"] = str_replace('&', '&', $cid["description"]); $cid["rewarddesc01"] = str_replace('&', '&', $cid["reward"]); $output_achieve_main_cat[$cat_id] .= ' <tr> <td style="width: 1%;" align="left"> <a href="' . $base_datasite . $achievement_datasite . $cid["id"] . '" rel="external"> <img src="' . achieve_get_icon($cid["id"]) . '" width="36" height="36" class="icon_border_0" alt="" /> </a> </td> <td colspan="2" align="left"> <a href="' . $base_datasite . $achievement_datasite . $cid["id"] . '" rel="external">' . $cid["name"] . '</a><br /> ' . $cid["description"] . '<br /> ' . $cid["reward"] . ' </td> <td style="width: 5%;" align="right">' . $cid["points"] . ' <img src="img/money_achievement.gif" alt="" /></td> <td style="width: 15%;" align="right">' . date('o-m-d', $char_achieve[$cid["id"]]) . '</td> </tr>'; ++$i; } $points += $cid["rewpoints"]; } elseif ($show_type && isset($achieve_id)) { $cid["name"] = str_replace('&', '&', $cid["name"]); $cid["description"] = str_replace('&', '&', $cid["description"]); $cid["reward"] = str_replace('&', '&', $cid["reward"]); $output_u_achieve_main_cat[$cat_id] .= ' <tr> <td style="width: 1%;" align="left"> <a href="' . $base_datasite . $achievement_datasite . $cid["id"] . '" rel="external"> <span id="ch_ach_opacity"> <img src="' . achieve_get_icon($cid["id"]) . '" width="36" height="36" class="icon_border_0" alt="" /> </span> </a> </td> <td colspan="2" align="left"> <a href="' . $base_datasite . $achievement_datasite . $cid["id"] . '" rel="external">' . $cid["name"] . '</a><br /> ' . $cid["description"] . '<br /> ' . $cid["reward"] . ' </td> <td style="width: 5%;" align="right">' . $cid["points"] . ' <img src="img/money_achievement.gif" alt="" /></td> <td style="width: 15%;" align="right">' . lang("char", "incomplete") . '</td> </tr>'; ++$i; } } } unset($achieve_main_cat); // this_is_junk: unfortunately the CSS here needs to be hardcoded. $output_achieve_main_cat[$cat_id] = ' <table class="hidden" id="ta' . $cat_id . '" style="width: 100%; display: none;"> <tr> <th colspan="3" align="left">' . lang("char", "achievement_title") . '</th> <th style="width: 5%;">' . lang("char", "achievement_points") . '</th> <th style="width: 15%;">' . lang("char", "achievement_date") . '</th> </tr>' . $output_achieve_main_cat[$cat_id] . $output_u_achieve_main_cat[$cat_id] . ' </table>'; unset($output_u_achieve_main_cat); $js_main_cats .= ' main_cats_achieve[' . $cat_id . '] = "ta' . $cat_id . '";'; $output_sub_cat = ''; $total_sub_cat = 0; if (isset($sub_cats[$cat["ID"]])) { $main_sub_cats = $sub_cats[$cat["ID"]]; foreach ($main_sub_cats as $sub_cat_id => $sub_cat) { if (isset($sub_cat)) { $j = 0; $output_achieve_sub_cat[$sub_cat_id] = ''; $output_u_achieve_sub_cat[$sub_cat_id] = ''; $achieve_sub_cat = achieve_get_id_category($sub_cat_id); foreach ($achieve_sub_cat as $achieve_id => $cid) { if (isset($achieve_id) && isset($cid["id"])) { if (isset($char_achieve[$cid["id"]])) { if ($show_type < 2) { $cid["name"] = str_replace('&', '&', $cid["name"]); $cid["description"] = str_replace('&', '&', $cid["description"]); $cid["reward"] = str_replace('&', '&', $cid["reward"]); $output_achieve_sub_cat[$sub_cat_id] .= ' <tr> <td style="width: 1%;" align="left"> <a href="' . $base_datasite . $achievement_datasite . $cid["id"] . '" rel="external"> <img src="' . achieve_get_icon($cid["id"]) . '" width="36" height="36" class="icon_border_0" alt="" /> </a> </td> <td colspan="2" align="left"> <a href="' . $base_datasite . $achievement_datasite . $cid["id"] . '" rel="external">' . $cid["name"] . '</a><br /> ' . $cid["description"] . '<br /> ' . $cid["rewarddesc"] . ' </td> <td style="width: 5%;" align="right">' . $cid["points"] . ' <img src="img/money_achievement.gif" alt="" /></td> <td style="width: 15%;" align="right">' . date('o-m-d', $char_achieve[$cid["id"]]) . '</td> </tr>'; ++$j; } $points += $cid["points"]; } elseif ($show_type && isset($achieve_id)) { $cid["name"] = str_replace('&', '&', $cid["name"]); $cid["description"] = str_replace('&', '&', $cid["description"]); $cid["reward"] = str_replace('&', '&', $cid["reward"]); $output_u_achieve_sub_cat[$sub_cat_id] .= ' <tr> <td style="width: 1%;" align="left"> <a href="' . $base_datasite . $achievement_datasite . $cid["id"] . '" rel="external"> <span id="ch_ach_opacity"> <img src="' . achieve_get_icon($cid["id"]) . '" width="36" height="36" class="icon_border_0" alt="" /> </span> </a> </td> <td colspan="2" align="left"> <a href="' . $base_datasite . $achievement_datasite . $cid["id"] . '" rel="external">' . $cid["name"] . '</a><br /> ' . $cid["description"] . '<br /> ' . $cid["reward"] . ' </td> <td style="width: 5%;" align="right">' . $cid["points"] . ' <img src="img/money_achievement.gif" alt="" /></td> <td style="width: 15%;" align="right">' . lang("char", "incomplete") . '</td> </tr>'; ++$j; } } } unset($achieve_sub_cat); $total_sub_cat = $total_sub_cat + $j; if ($j) { $sub_cat["name"] = str_replace('&', '&', $sub_cat["name"]); $output_sub_cat .= ' <tr> <th align="left"> <div id="divs' . $sub_cat_id . '" onclick="expand(\'tsa' . $sub_cat_id . '\');">[+] ' . $sub_cat . ' (' . $j . ')</div> </th> </tr>'; $js_main_cats .= ' main_sub_cats[' . $sub_cat_id . '] = "tsa' . $sub_cat_id . '"; main_sub_cats_div[' . $sub_cat_id . '] = "divs' . $sub_cat_id . '"; main_sub_cats_name[' . $sub_cat_id . '] = "' . $sub_cat . ' (' . $j . ')";'; // this_is_junk: unfortunately the CSS here needs to be hardcoded. $output_achieve_sub_cat[$sub_cat_id] = ' <table class="hidden" id="tsa' . $sub_cat_id . '" style="width: 100%; display: none;"> <tr> <th colspan="3" align="left">' . lang("char", "achievement_title") . '</th> <th style="width: 5%;">' . lang("char", "achievement_points") . '</th> <th style="width: 15%;">' . lang("char", "achievement_date") . '</th> </tr>' . $output_achieve_sub_cat[$sub_cat_id] . $output_u_achieve_sub_cat[$sub_cat_id] . ' </table>'; unset($output_u_achieve_sub_cat); $js_main_cats .= ' main_sub_cats_achieve[' . $sub_cat_id . '] = "tsa' . $sub_cat_id . '";'; } } } unset($main_sub_cats); } if ($total_sub_cat || $i) { $cat["Name"] = str_replace('&', '&', $cat["Name"]); // this_is_junk: unfortunately the CSS here needs to be hardcoded. $output .= ' <tr> <th align="left"> <div id="div' . $cat_id . '" onclick="expand(\'t' . $cat_id . '\');">[+] ' . $cat["Name"] . ' (' . ($i + $total_sub_cat) . ')</div> </th> </tr> <tr> <td> <table class="hidden" id="t' . $cat_id . '" style="width: 100%; display: none;"> ' . ($output_sub_cat != "" ? $output_sub_cat : '<tr><td></td></tr>') . ' </table> </td> </tr>'; $js_main_cats .= ' main_cats[' . $cat_id . '] = "t' . $cat_id . '"; main_cats_div[' . $cat_id . '] = "div' . $cat_id . '"; main_cats_name[' . $cat_id . '] = "' . $cat["Name"] . ' (' . ($i + $total_sub_cat) . ')";'; } unset($output_sub_cat); } } unset($sub_cats); unset($main_cats); unset($char_achieve); $output = str_replace('%%REPLACE%%', $js_main_cats, $output); unset($js_main_cats); $output = str_replace('%%REPLACE_POINTS%%', ' ' . lang("char", "achievements") . ' ' . lang("char", "achievement_points") . ': ' . $points . '', $output); unset($point); $output .= ' </table> </td> <td>'; foreach ($output_achieve_main_cat as $temp) { $output .= $temp; } foreach ($output_achieve_sub_cat as $temp) { $output .= $temp; } unset($temp); unset($output_achieve_main_cat); unset($output_achieve_sub_cat); // this_is_junk: unfortunately the CSS here needs to be hardcoded. $output .= ' <table class="hidden" id="tsummary" style="width: 100%; display: table;"> <tr> <th colspan="5"> ' . lang("char", "recent") . ' ' . lang("char", "achievements") . ' </th> </tr> <tr> <th colspan="3" align="left">' . lang("char", "achievement_title") . '</th> <th style="width: 5%;">' . lang("char", "achievement_points") . '</th> <th style="width: 15%;">' . lang("char", "achievement_date") . '</th> </tr>'; while ($temp = $sql["char"]->fetch_assoc($result)) { $cid = achieve_get_details($temp["achievement"]); $cid["name"] = str_replace('&', '&', $cid["name"]); $cid["description"] = str_replace('&', '&', $cid["description"]); $cid["reward"] = str_replace('&', '&', $cid["reward"]); $output .= ' <tr> <td style="width: 1%;" align="left"> <a href="' . $base_datasite . $achievement_datasite . $cid["id"] . '" rel="external"> <img src="' . achieve_get_icon($cid["id"]) . '" width="36" height="36" class="icon_border_0" alt="" /> </a> </td> <td colspan="2" align="left"> <a href="' . $base_datasite . $achievement_datasite . $cid["id"] . '" rel="external">' . $cid["name"] . '</a><br /> ' . $cid["description"] . '<br /> ' . $cid["reward"] . ' </td> <td style="width: 5%;" align="right">' . $cid["points"] . ' <img src="img/money_achievement.gif" alt="" /></td> <td style="width: 15%;" align="right">' . date('o-m-d', $temp["date"]) . '</td> </tr>'; } unset($cid); unset($temp); unset($result); $output .= ' </table> </td>'; //---------------Page Specific Data Ends here---------------------------- //---------------Character Tabs Footer----------------------------------- $output .= ' </tr> </table> </div> <br /> <table class="hidden"> <tr> <td>'; // button to user account page, user account page has own security makebutton(lang("char", "chars_acc"), 'user.php?action=edit_user&id=' . $owner_acc_id . '', 130); $output .= ' </td> <td>'; // only higher level GM with delete access can edit character // character edit allows removal of character items, so delete permission is needed if ($user_lvl > $owner_gmlvl && $user_lvl >= $action_permission["delete"]) { //makebutton($lang_char["edit_button"], 'char_edit.php?id='.$id.'&realm='.$realmid.'', 130); $output .= ' </td> <td>'; } // only higher level GM with delete access, or character owner can delete character if ($user_lvl > $owner_gmlvl && $user_lvl >= $action_permission["delete"] || $owner_name === $user_name) { makebutton(lang("char", "del_char"), 'char_list.php?action=del_char_form&check%5B%5D=' . $id . '" type="wrn', 130); $output .= ' </td> <td>'; } // only GM with update permission can send mail, mail can send items, so update permission is needed if ($user_lvl >= $action_permission["update"]) { makebutton(lang("char", "send_mail"), 'mail.php?type=ingame_mail&to=' . $char["name"] . '', 130); $output .= ' </td> <td>'; } makebutton(lang("global", "back"), 'javascript:window.history.back()" type="def', 130); $output .= ' </td> </tr> </table> <br /> <!-- end of char_achieve.php -->'; } else { error(lang("char", "no_permission")); } } else { error(lang("char", "no_char_found")); } }
function guild_bank() { global $output, $realm_id, $characters_db, $arcm_db, $world_db, $item_datasite, $base_datasite, $item_icons, $sql, $core; wowhead_tt(); if (empty($_GET["id"])) { error(lang("global", "empty_fields")); } // this is multi realm support, as of writing still under development // this page is already implementing it if (empty($_GET["realm"])) { $realmid = $realm_id; } else { $realmid = $sql["logon"]->quote_smart($_GET["realm"]); if (is_numeric($realmid)) { $sql["char"]->connect($characters_db[$realmid]["addr"], $characters_db[$realmid]["user"], $characters_db[$realmid]["pass"], $characters_db[$realmid]["name"], $characters_db[$realmid]["encoding"]); } else { $realmid = $realm_id; } } $guild_id = $sql["char"]->quote_smart($_GET["id"]); if (!is_numeric($guild_id)) { $guild_id = 0; } if (empty($_GET["tab"])) { $current_tab = 0; } else { $current_tab = $sql["char"]->quote_smart($_GET["tab"]); } if (!is_numeric($current_tab) || $current_tab > 6) { $current_tab = 0; } if ($core == 1) { $result = $sql["char"]->query("SELECT guildName, bankBalance FROM guilds WHERE guildid='" . $guild_id . "' LIMIT 1"); } else { $result = $sql["char"]->query("SELECT name AS guildName, BankMoney AS bankBalance FROM guild WHERE guildid='" . $guild_id . "' LIMIT 1"); } if ($sql["char"]->num_rows($result)) { $guild_name = $sql["char"]->result($result, 0, "guildName"); $bank_gold = $sql["char"]->result($result, 0, "bankBalance"); if ($core == 1) { $result = $sql["char"]->query("SELECT TabId, TabName, TabIcon FROM guild_banktabs WHERE guildid='" . $guild_id . "' LIMIT 6"); } else { $result = $sql["char"]->query("SELECT TabId, TabName, TabIcon FROM guild_bank_tab WHERE guildid='" . $guild_id . "' LIMIT 6"); } $tabs = array(); while ($tab = $sql["char"]->fetch_assoc($result)) { $tabs[$tab["TabId"]] = $tab; } $output .= ' <div class="top"> <h1>' . $guild_name . ' ' . lang("guildbank", "guildbank") . '</h1> </div> <div class="tab"> <ul>'; for ($i = 0; $i < 6; ++$i) { if (isset($tabs[$i])) { $output .= ' <li' . ($current_tab == $i ? ' class="selected"' : '') . '> <a href="guildbank.php?id=' . $guild_id . '&tab=' . $i . '&realm=' . $realmid . '">'; if ($tabs[$i]['TabIcon'] == '') { $output .= ' <img src="img/INV/INV_blank_32.gif" class="icon_border_0"'; } else { // make sure we're looking for the file name with the correct capitalization $ii_query = "SELECT * FROM itemdisplayinfo WHERE LCASE(IconName)='" . strtolower($tabs[$i]["TabIcon"]) . "' LIMIT 1"; $ii_result = $sql["dbc"]->query($ii_query); $ii_fields = $sql["dbc"]->fetch_assoc($ii_result); $tabs[$i]["TabIcon"] = $ii_fields["IconName"]; if (file_exists($item_icons . "/" . $tabs[$i]["TabIcon"] . ".png")) { $output .= ' <img src="' . $item_icons . "/" . $tabs[$i]["TabIcon"] . '.png" class="icon_border_0"'; } else { $output .= ' <img src="img/INV/INV_blank_32.gif" class="icon_border_0"'; } } if ($tabs[$i]['TabName'] == '') { $output .= ' onmousemove="oldtoolTip(\'' . lang("guildbank", "tab") . ($i + 1) . '\', \'old_item_tooltip\')" onmouseout="oldtoolTip()" alt="" />'; } else { $output .= ' onmousemove="oldtoolTip(\'' . $tabs[$i]['TabName'] . '\', \'old_item_tooltip\')" onmouseout="oldtoolTip()" alt="" />'; } $output .= ' </a> </li>'; } } $output .= ' </ul> </div> <div class="tab_content center">'; if ($core == 1) { $result = $sql["char"]->query("SELECT gbi.SlotId, gbi.itemGuid, ii.entry,\r\n ii.count AS stack_count,\r\n FROM guild_bankitems gbi\r\n INNER JOIN playeritems ii ON ii.guid=gbi.itemGuid\r\n WHERE gbi.guildid='" . $guild_id . "' AND TabID='" . $current_tab . "'"); } elseif ($core == 2) { $result = $sql["char"]->query("SELECT gbi.SlotId, gbi.item_guid AS itemGuid, gbi.item_entry AS entry, \r\n SUBSTRING_INDEX(SUBSTRING_INDEX(data, ' ', 15), ' ', -1) as stack_count \r\n FROM guild_bank_item gbi\r\n INNER JOIN item_instance ii ON ii.guid=gbi.item_guid \r\n WHERE gbi.guildid='" . $guild_id . "' AND TabID='" . $current_tab . "'"); } else { $result = $sql["char"]->query("SELECT gbi.SlotId, gbi.item_guid AS itemGuid, ii.itemEntry AS entry, \r\n ii.count as stack_count \r\n FROM guild_bank_item gbi\r\n INNER JOIN item_instance ii ON ii.guid=gbi.item_guid \r\n WHERE gbi.guildid='" . $guild_id . "' AND TabID='" . $current_tab . "'"); } $gb_slots = array(); while ($tab = $sql["char"]->fetch_assoc($result)) { if ($tab["itemGuid"]) { $gb_slots[$tab["SlotId"]] = $tab; } } // this_is_junk: style left hardcoded because it's calculated. $output .= ' <table id="guildbank_tabs"> <tr> <td align="center"> <div class="bag" style="width:' . (14 * 43 + 2) . 'px; height:' . 7 * 41 . 'px;">'; $item_position = 0; for ($i = 0; $i < 7; ++$i) { for ($j = 0; $j < 14; ++$j) { $item_position = $j * 7 + $i; if (isset($gb_slots[$item_position])) { $gb_item_id = $gb_slots[$item_position]["entry"]; $stack = $gb_slots[$item_position]["stack_count"] == 1 ? '' : $gb_slots[$item_position]["stack_count"]; // this_is_junk: style left hardcoded because it's calculated. $output .= ' <div class="bag_slot" style="left:' . ($j * 43 + 4) . 'px; top:' . ($i * 41 + 4) . 'px;"> <a class="guildbank_padding" href="' . $base_datasite . $item_datasite . $gb_item_id . '"> <img src="' . get_item_icon($gb_item_id) . '" class="inv_icon" alt="" /> </a> <div class="guildbank_quantity_shadow">' . $stack . '</div> <div class="guildbank_quantity">' . $stack . '</div> </div>'; } } } $output .= ' </div> </td> </tr> <tr> <td class="hidden" align="right"> ' . substr($bank_gold, 0, -4) . '<img src="img/gold.gif" alt="" style="position: relative; bottom: -6px;" /> ' . substr($bank_gold, -4, 2) . '<img src="img/silver.gif" alt="" style="position: relative; bottom: -6px;" /> ' . substr($bank_gold, -2) . '<img src="img/copper.gif" alt="" style="position: relative; bottom: -6px;" /> </td> </tr> </table> </div> <br /> <table class="hidden center"> <tr> <td>'; makebutton(lang("guildbank", "guild"), "guild.php?action=view_guild&realm=" . $realmid . "&error=3&id=" . $guild_id, 130); $output .= ' </td> </tr> </table> <br />'; unset($bank_gold); } else { redirect("error.php?err=" . lang("guildbank", "notfound")); } }
function guild_bank(&$sqlr, &$sqlc) { global $output, $lang_global, $lang_guildbank, $realm_id, $characters_db, $mmfpm_db, $world_db, $item_datasite, $item_icons; wowhead_tt(); if (empty($_GET['id'])) { error($lang_global['empty_fields']); } // this is multi realm support, as of writing still under development // this page is already implementing it if (empty($_GET['realm'])) { $realmid = $realm_id; } else { $realmid = $sqlr->quote_smart($_GET['realm']); if (is_numeric($realmid)) { $sqlc->connect($characters_db[$realmid]['addr'], $characters_db[$realmid]['user'], $characters_db[$realmid]['pass'], $characters_db[$realmid]['name']); } else { $realmid = $realm_id; } } $guild_id = $sqlc->quote_smart($_GET['id']); if (is_numeric($guild_id)) { } else { $guild_id = 0; } if (empty($_GET['tab'])) { $current_tab = 0; } else { $current_tab = $sqlc->quote_smart($_GET['tab']); } if (is_numeric($current_tab) || $current_tab > 6) { } else { $current_tab = 0; } $result = $sqlc->query('SELECT name, BankMoney FROM guild WHERE guildid = ' . $guild_id . ' LIMIT 1'); if ($sqlc->num_rows($result)) { $guild_name = $sqlc->result($result, 0, 'name'); $bank_gold = $sqlc->result($result, 0, 'BankMoney'); $result = $sqlc->query('SELECT TabId, TabName, TabIcon FROM guild_bank_tab WHERE guildid = ' . $guild_id . ' LIMIT 6'); $tabs = array(); while ($tab = $sqlc->fetch_assoc($result)) { $tabs[$tab['TabId']] = $tab; } $output .= ' <div class="top"> <h1>' . $guild_name . ' ' . $lang_guildbank['guildbank'] . '</h1> </div> <center> <div id="tab"> <ul>'; for ($i = 0; $i < 6; ++$i) { if (isset($tabs[$i])) { $output .= ' <li' . ($current_tab == $i ? ' id="selected"' : '') . '> <a href="guildbank.php?id=' . $guild_id . '&tab=' . $i . '&realm=' . $realmid . '">'; if ($tabs[$i]['TabIcon'] == '') { $output .= ' <img src="img/INV/INV_blank_32.gif" class="icon_border_0"'; } else { if (file_exists('' . $item_icons . '/' . $tabs[$i]['TabIcon'] . '.jpg')) { $output .= ' <img src="' . $item_icons . '/' . $tabs[$i]['TabIcon'] . '.jpg" class="icon_border_0"'; } else { $output .= ' <img src="img/INV/INV_blank_32.gif" class="icon_border_0"'; } } if ($tabs[$i]['TabName'] == '') { $output .= ' onmousemove="toolTip(\'' . $lang_guildbank['tab'] . ($i + 1) . '\', \'item_tooltip\')" onmouseout="toolTip()" alt="" />'; } else { $output .= ' onmousemove="toolTip(\'' . $tabs[$i]['TabName'] . '\', \'item_tooltip\')" onmouseout="toolTip()" alt="" />'; } $output .= ' </a> </li>'; } } $output .= ' </ul> </div> <div id="tab_content">'; $result = $sqlc->query('SELECT gbi.SlotId, gbi.item_entry, SUBSTRING_INDEX(SUBSTRING_INDEX(data, " ", 15), " ", -1) as stack_count FROM guild_bank_item gbi INNER JOIN item_instance ii on ii.guid = gbi.item_guid WHERE gbi.guildid = ' . $guild_id . ' AND TabID = ' . $current_tab . ''); $gb_slots = array(); while ($tab = $sqlc->fetch_assoc($result)) { if ($tab['item_entry']) { $gb_slots[$tab['SlotId']] = $tab; } } $output .= ' <table style="width: 510px;"> <tr> <td class="bag" align="center"> <div style="width:' . 14 * 43 . 'px;height:' . 7 * 41 . 'px;">'; $sqlm = new SQL(); $sqlm->connect($mmfpm_db['addr'], $mmfpm_db['user'], $mmfpm_db['pass'], $mmfpm_db['name']); $sqlw = new SQL(); $sqlw->connect($world_db[$realmid]['addr'], $world_db[$realmid]['user'], $world_db[$realmid]['pass'], $world_db[$realmid]['name']); $item_position = 0; for ($i = 0; $i < 7; ++$i) { for ($j = 0; $j < 14; ++$j) { $item_position = $j * 7 + $i; if (isset($gb_slots[$item_position])) { $gb_item_id = $gb_slots[$item_position]['item_entry']; $stack = $gb_slots[$item_position]['stack_count'] == 1 ? '' : $gb_slots[$item_position]['stack_count']; $output .= ' <div style="left:' . $j * 43 . 'px;top:' . $i * 41 . 'px;"> <a style="padding:2px;" href="' . $item_datasite . $gb_item_id . '"> <img src="' . get_item_icon($gb_item_id, $sqlm, $sqlw) . '" alt="" /> </a> <div style="width:25px;margin:-15px 0px 0px 16px;color:black;font-size:12px">' . $stack . '</div> <div style="width:25px;margin:-16px 0px 0px 15px;color:white;font-size:12px">' . $stack . '</div> </div>'; } } } $output .= ' </div> </td> </tr> <tr> <td class="hidden" align="right"> ' . substr($bank_gold, 0, -4) . '<img src="img/gold.gif" alt="" align="middle" /> ' . substr($bank_gold, -4, -2) . '<img src="img/silver.gif" alt="" align="middle" /> ' . substr($bank_gold, -2) . '<img src="img/copper.gif" alt="" align="middle" /> </td> </tr> </table> </div> <br /> <table class="hidden"> <tr> <td>'; makebutton($lang_guildbank['guild'], 'guild.php?action=view_guild&realm=' . $realmid . '&error=3&id=' . $guild_id . '', 130); $output .= ' </td> </tr> </table> <br /> </center>'; unset($bank_gold); } else { redirect('error.php?err=' . $lang_guildbank['notfound']); } }
function char_companions(&$sqlr, &$sqlc, &$sqlw) { global $output, $lang_global, $lang_char, $realm_id, $characters_db, $world_db, $action_permission, $user_lvl, $user_name, $item_datasite; // this page uses wowhead tooltops wowhead_tt(); //==========================$_GET and SECURE================================= // id and multi realm security to prevent sql injection require_once './include/char/include/char_multi_realm_security.php'; //==========================$_GET and SECURE end============================= // getting character data from database $result = $sqlc->query(' SELECT account, name, race, class, gender, level FROM characters WHERE guid = ' . $id . ' LIMIT 1'); // no point going further if character does not exist if ($sqlc->num_rows($result)) { $char = $sqlc->fetch_assoc($result); // we get user permissions first $owner_acc_id = $sqlc->result($result, 0, 'account'); $result = $sqlr->query(' SELECT gmlevel, username FROM account WHERE id = ' . $char['account'] . ''); $owner_gmlvl = $sqlr->result($result, 0, 'gmlevel'); $owner_name = $sqlr->result($result, 0, 'username'); // check user permission if ($user_lvl > $owner_gmlvl || $owner_name === $user_name) { // character sub header $output .= ' <center> <div id="tab_content"> <h1>' . $lang_char['extra'] . '</h1> <br />'; // character menu tab require_once './include/char/include/char_header.php'; // character info require_once './include/char/include/char_info.php'; //---------------Page Specific Data Starts Here-------------------------- $output .= ' <h1>' . $lang_char['char_companions'] . '</h1> <br />'; // character extra menu tab require_once './include/char/include/char_extra_header.php'; $output .= ' <div id="tab_content2"> <table class="lined" style="width: 450px;"> <tr> <th width="15%">' . $lang_char['icon'] . '</th> <th width="15%">' . $lang_char['quantity'] . '</th> <th width="70%">' . $lang_char['name'] . '</th> </tr>'; $sqlw = new SQL(); $sqlw->connect($world_db[$realm_id]['addr'], $world_db[$realm_id]['user'], $world_db[$realm_id]['pass'], $world_db[$realm_id]['name']); $item = $sqlw->query(' SELECT entry, description FROM item_template WHERE BagFamily = 4096'); while ($template = $sqlw->fetch_assoc($item)) { $character = $sqlc->query(' SELECT item, item_template FROM character_inventory WHERE guid = ' . $id . ' AND item_template = ' . $template['entry'] . ' '); while ($inventory = $sqlc->fetch_assoc($character)) { $instance = $sqlc->query(' SELECT CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, " ", 15), " ", -1) AS UNSIGNED) AS item FROM item_instance WHERE guid = ' . $inventory['item'] . ' '); $output .= ' <tr valign="center"> <td > <a style="padding:2px;" href="' . $item_datasite . $inventory['item_template'] . '" target="_blank"> <img src="' . get_item_icon($inventory['item_template'], $sqlm) . '" alt="' . $inventory['item_template'] . '" class="icon_border_0" /> </a> </td> <td> ' . $instance['item'] . ' </td> <td> <span onmousemove="toolTip(\'' . $template['description'] . '\', \'item_tooltip\')" onmouseout="toolTip()">' . get_item_name($inventory['item_template'], $sqlw) . '</span> </td> </tr>'; } } $output .= ' </table>'; unset($template); unset($inventory); unset($item); unset($character); unset($instance); //---------------Page Specific Data Ends Here-------------------------- $output .= ' </div> </div> <br />'; require_once './include/char/include/char_ footer.php'; $output .= ' <br /> </center>'; } else { error($lang_char['no_permission']); } } else { error($lang_char['no_char_found']); } }
function char_spell(&$sqlr, &$sqlc) { global $output, $lang_global, $lang_char, $realm_id, $characters_db, $mmfpm_db, $action_permission, $user_lvl, $user_name, $spell_datasite, $itemperpage; // this page uses wowhead tooltops wowhead_tt(); //==========================$_GET and SECURE================================= // id and multi realm security to prevent sql injection require_once './include/char/include/char_multi_realm_security.php'; $start = isset($_GET['start']) ? $sqlr->quote_smart($_GET['start']) : 0; if (is_numeric($start)) { } else { $start = 0; } $order_by = isset($_GET['order_by']) ? $sqlr->quote_smart($_GET['order_by']) : 'guid'; if (preg_match('/^[_[:lower:]]{1,12}$/', $order_by)) { } else { $order_by = 'guid'; } $dir = isset($_GET['dir']) ? $sqlr->quote_smart($_GET['dir']) : 1; if (preg_match('/^[01]{1}$/', $dir)) { } else { $dir = 1; } $order_dir = $dir ? 'ASC' : 'DESC'; $dir = $dir ? 0 : 1; //==========================$_GET and SECURE end============================= // getting character data from database $result = $sqlc->query(' SELECT account, name, race, class, gender, level FROM characters WHERE guid = ' . $id . ' LIMIT 1'); // no point going further if character does not exist if ($sqlc->num_rows($result)) { $char = $sqlc->fetch_assoc($result); // we get user permissions first $owner_acc_id = $sqlc->result($result, 0, 'account'); $result = $sqlr->query(' SELECT gmlevel, username FROM account WHERE id = ' . $char['account'] . ''); $owner_gmlvl = $sqlr->result($result, 0, 'gmlevel'); $owner_name = $sqlr->result($result, 0, 'username'); // check user permission if ($user_lvl > $owner_gmlvl || $owner_name === $user_name) { // character sub header $output .= ' <center> <div id="tab_content"> <h1>' . $lang_char['spells'] . '</h1> <br />'; // character menu tab require_once './include/char/include/char_header.php'; // character info require_once './include/char/include/char_info.php'; //---------------Page Specific Data Starts Here-------------------------- $output .= ' <h1>' . $lang_char['spells'] . '</h1> <br />'; // character extra menu tab require_once './include/char/include/char_spell_header.php'; $all_record = $sqlc->result($sqlc->query(' SELECT count(spell) FROM character_spell WHERE guid = ' . $id . ' and active = 1'), 0); $result = $sqlc->query(' SELECT spell FROM character_spell WHERE guid = ' . $id . ' and active = 1 ORDER BY spell ASC LIMIT ' . $start . ', ' . $itemperpage . ''); $output .= ' <div id="tab_content2"> <table class="lined" style="width: 550px;"> <tr align="right"> <td colspan="4">'; $output .= generate_pagination('char_spell.php?id=' . $id . '&realm=' . $realmid . '&start=' . $start . '', $all_record, $itemperpage, $start); $output .= ' </td> </tr> <tr> <th>' . $lang_char['icon'] . '</th> <th>' . $lang_char['name'] . '</th> <th>' . $lang_char['icon'] . '</th> <th>' . $lang_char['name'] . '</th> </tr>'; $sqlm = new SQL(); $sqlm->connect($mmfpm_db['addr'], $mmfpm_db['user'], $mmfpm_db['pass'], $mmfpm_db['name']); while ($spell = $sqlc->fetch_assoc($result)) { $output .= ' <tr> <td><a href="' . $spell_datasite . $spell['spell'] . '"><img src="' . spell_get_icon($spell['spell'], $sqlm) . '" class="icon_border_0" /></a></td> <td align="left"><a href="' . $spell_datasite . $spell['spell'] . '">' . spell_get_name($spell['spell'], $sqlm) . '</a></td>'; if ($spell = $sqlc->fetch_assoc($result)) { $output .= ' <td><a href="' . $spell_datasite . $spell['spell'] . '"><img src="' . spell_get_icon($spell['spell'], $sqlm) . '" class="icon_border_0" /></a></td> <td align="left"><a href="' . $spell_datasite . $spell['spell'] . '">' . spell_get_name($spell['spell'], $sqlm) . '</a></td> </tr>'; } else { $output .= ' <td></td> <td></td> </tr>'; } } $output .= ' <tr align="right"> <td colspan="4">'; $output .= generate_pagination('char_spell.php?id=' . $id . '&realm=' . $realmid . '&start=' . $start . '', $all_record, $itemperpage, $start); $output .= ' </td> </tr> </table> </div> </div> <br />'; //---------------Page Specific Data Ends here---------------------------- // character sub footer require_once './include/char/include/char_ footer.php'; $output .= ' <br /> </center>'; } else { error($lang_char['no_permission']); } } else { error($lang_char['no_char_found']); } }
function edit() { global $lang_global, $lang_item_templ, $lang_item, $lang_item_edit, $output, $world_db, $realm_id, $item_datasite, $lang_id_tab, $quest_datasite, $action_permission, $user_lvl, $creature_datasite; wowhead_tt(); valid_login($action_permission['read']); if (!isset($_GET['entry'])) { redirect("item.php?error=1"); } $sql = new SQL(); $sql->connect($world_db[$realm_id]['addr'], $world_db[$realm_id]['user'], $world_db[$realm_id]['pass'], $world_db[$realm_id]['name']); $entry = $sql->quote_smart($_GET['entry']); $deplang = get_lang_id(); $result = $sql->query("SELECT `item_template`.`entry`,`class`,`subclass`,`unk0`,IFNULL(" . ($deplang != 0 ? "name_loc{$deplang}" : "NULL") . ",`name`) as name,`displayid`,`Quality`,`Flags`,`BuyCount`,`BuyPrice`,`SellPrice`,`InventoryType`,`AllowableClass`,`AllowableRace`,`ItemLevel`,`RequiredLevel`,`RequiredSkill`,`RequiredSkillRank`,`requiredspell`,`requiredhonorrank`,`RequiredCityRank`,`RequiredReputationFaction`,`RequiredReputationRank`,`maxcount`,`stackable`,`ContainerSlots`,`stat_type1`,`stat_value1`,`stat_type2`,`stat_value2`,`stat_type3`,`stat_value3`,`stat_type4`,`stat_value4`,`stat_type5`,`stat_value5`,`stat_type6`,`stat_value6`,`stat_type7`,`stat_value7`,`stat_type8`,`stat_value8`,`stat_type9`,`stat_value9`,`stat_type10`,`stat_value10`,`dmg_min1`,`dmg_max1`,`dmg_type1`,`dmg_min2`,`dmg_max2`,`dmg_type2`,`armor`,`holy_res`,`fire_res`,`nature_res`,`frost_res`,`shadow_res`,`arcane_res`,`delay`,`ammo_type`,`RangedModRange`,`spellid_1`,`spelltrigger_1`,`spellcharges_1`,`spellppmRate_1`,`spellcooldown_1`,`spellcategory_1`,`spellcategorycooldown_1`,`spellid_2`,`spelltrigger_2`,`spellcharges_2`,`spellppmRate_2`,`spellcooldown_2`,`spellcategory_2`,`spellcategorycooldown_2`,`spellid_3`,`spelltrigger_3`,`spellcharges_3`,`spellppmRate_3`,`spellcooldown_3`,`spellcategory_3`,`spellcategorycooldown_3`,`spellid_4`,`spelltrigger_4`,`spellcharges_4`,`spellppmRate_4`,`spellcooldown_4`,`spellcategory_4`,`spellcategorycooldown_4`,`spellid_5`,`spelltrigger_5`,`spellcharges_5`,`spellppmRate_5`,`spellcooldown_5`,`spellcategory_5`,`spellcategorycooldown_5`,`bonding`,`description`,`PageText`,`LanguageID`,`PageMaterial`,`startquest`,`lockid`,`Material`,`sheath`,`RandomProperty`,`RandomSuffix`,`block`,`itemset`,`MaxDurability`,`area`,`Map`,`BagFamily`,`TotemCategory`,`socketColor_1`,`socketContent_1`,`socketColor_2`,`socketContent_2`,`socketColor_3`,`socketContent_3`,`socketBonus`,`GemProperties`,`RequiredDisenchantSkill`,`ArmorDamageModifier`,`ScriptName`,`DisenchantID`,`FoodType`,`minMoneyLoot`,`maxMoneyLoot` FROM item_template LEFT JOIN locales_item ON item_template.entry = locales_item.entry WHERE item_template.entry = '{$entry}'"); if ($result) { $item = $sql->fetch_assoc($result); require_once "scripts/get_lib.php"; //$tooltip = get_item_tooltip($entry); $output .= "<script type=\"text/javascript\" src=\"libs/js/tab.js\"></script>\n <center>\n <br /><br /><br />\n <form method=\"post\" action=\"item.php?action=do_update\" name=\"form1\">\n <input type=\"hidden\" name=\"backup_op\" value=\"0\"/>\n <input type=\"hidden\" name=\"type\" value=\"edit\"/>\n <input type=\"hidden\" name=\"entry\" value=\"{$entry}\"/>\n\n<div class=\"jtab-container\" id=\"container\">\n <ul class=\"jtabs\">\n <li><a href=\"#\" onclick=\"return showPane('pane1', this)\" id=\"tab1\">{$lang_item_edit['general_tab']}</a></li>\n <li><a href=\"#\" onclick=\"return showPane('pane2', this)\">{$lang_item_edit['additional_tab']}</a></li>\n <li><a href=\"#\" onclick=\"return showPane('pane3', this)\">{$lang_item_edit['stats_tab']}</a></li>\n <li><a href=\"#\" onclick=\"return showPane('pane4', this)\">{$lang_item_edit['damage_tab']}</a></li>\n <li><a href=\"#\" onclick=\"return showPane('pane5', this)\">{$lang_item_edit['spell_tab']}</a></li>\n <li><a href=\"#\" onclick=\"return showPane('pane7', this)\">{$lang_item_edit['sock_tab']}</a></li>\n <li><a href=\"#\" onclick=\"return showPane('pane6', this)\">{$lang_item_edit['req_tab']}</a></li>\n <li><a href=\"#\" onclick=\"return showPane('pane8', this)\">{$lang_item_edit['info']}</a></li>"; if ($item['DisenchantID']) { $output .= "<li><a href=\"#\" onclick=\"return showPane('pane9', this)\">{$lang_item_edit['disenchant_tab']}</a></li>"; } $output .= "</ul>\n <div class=\"jtab-panes\">"; $output .= "<div id=\"pane1\">\n <br /><br />\n<table class=\"lined\" style=\"width: 720px;\">\n<tr class=\"large_bold\"><td colspan=\"8\" class=\"hidden\" align=\"left\">{$lang_item_edit['general']}:</td></tr>\n<tr>\n <td>" . makeinfocell($lang_item_edit['entry'], $lang_item_edit['entry_desc']) . "</td>\n <td>"; //$output .= maketooltip($entry, "$item_datasite$entry", $tooltip, "item_tooltip"); $output .= "</td>\n <td>" . makeinfocell($lang_item_edit['display_id'], $lang_item_edit['display_id_desc']) . "</td>\n <td><input type=\"text\" name=\"displayid\" size=\"8\" maxlength=\"11\" value=\"{$item['displayid']}\" /></td>\n\n <td>" . makeinfocell($lang_item_edit['req_level'], $lang_item_edit['req_level_desc']) . "</td>\n <td><input type=\"text\" name=\"RequiredLevel\" size=\"8\" maxlength=\"4\" value=\"{$item['RequiredLevel']}\" /></td>\n\n <td>" . makeinfocell($lang_item_edit['item_level'], $lang_item_edit['item_level_desc']) . "</td>\n <td><input type=\"text\" name=\"ItemLevel\" size=\"8\" maxlength=\"4\" value=\"{$item['ItemLevel']}\" /></td>\n</tr>\n\n<tr class=\"large_bold\"><td colspan=\"8\" class=\"hidden\" align=\"left\">{$lang_item_edit['names']}:</td></tr>\n<tr>\n <td>" . makeinfocell($lang_item_edit['item_name'], $lang_item_edit['item_name_desc']) . "</td>\n <td colspan=\"3\"><input type=\"text\" name=\"name\" size=\"30\" maxlength=\"225\" value=\"{$item['name']}\" /></td>\n\n <td>" . makeinfocell($lang_item_edit['script_name'], $lang_item_edit['script_name_desc']) . "</td>\n <td colspan=\"3\"><input type=\"text\" name=\"ScriptName\" size=\"30\" maxlength=\"100\" value=\"{$item['ScriptName']}\" /></td>\n</tr>\n\n<tr>\n <td>" . makeinfocell($lang_item_edit['description'], $lang_item_edit['description_desc']) . "</td>\n <td colspan=\"3\"><input type=\"text\" name=\"description\" size=\"30\" maxlength=\"225\" value=\"{$item['description']}\" /></td>\n <td colspan=\"4\"></td>\n</tr>\n\n<tr class=\"large_bold\"><td colspan=\"8\" class=\"hidden\" align=\"left\">{$lang_item_edit['type']}:</td></tr>\n <tr>"; $class = array(0 => "", 1 => "", 2 => "", 4 => "", 5 => "", 6 => "", 7 => "", 9 => "", 11 => "", 12 => "", 13 => "", 14 => "", 15 => ""); $class[$item['class']] = " selected=\"selected\" "; $output .= "<td>" . makeinfocell($lang_item_edit['class'], $lang_item_edit['class_desc']) . "</td>\n <td colspan=\"3\"><select name=\"class\">\n <option value=\"0\" {$class[0]}>0 - {$lang_item['consumable']}</option>\n <option value=\"1\" {$class[1]}>1 - {$lang_item['bag']}</option>\n <option value=\"2\" {$class[2]}>2 - {$lang_item['weapon']}</option>\n <option value=\"4\" {$class[4]}>4 - {$lang_item['armor']}</option>\n <option value=\"5\" {$class[5]}>5 - {$lang_item['reagent']}</option>\n <option value=\"6\" {$class[6]}>6 - {$lang_item['projectile']}</option>\n <option value=\"7\" {$class[7]}>7 - {$lang_item['trade_goods']}s</option>\n <option value=\"9\" {$class[9]}>9 - {$lang_item['recipe']}</option>\n <option value=\"11\" {$class[11]}>11 - {$lang_item['quiver']}</option>\n <option value=\"12\" {$class[12]}>12 - {$lang_item['quest']}</option>\n <option value=\"13\" {$class[13]}>13 - {$lang_item['key']}</option>\n <option value=\"14\" {$class[14]}>14 - {$lang_item['permanent']}</option>\n <option value=\"15\" {$class[15]}>15 - {$lang_item['misc_short']}</option>\n </select></td>"; unset($class); $subclass = array(0 => array(0 => "", 3 => "", 4 => "", 5 => "", 6 => "", 7 => ""), 1 => array(0 => "", 1 => "", 2 => "", 3 => "", 4 => "", 5 => "", 6 => ""), 2 => array(0 => "", 1 => "", 2 => "", 3 => "", 4 => "", 5 => "", 6 => "", 7 => "", 8 => "", 10 => "", 11 => "", 12 => "", 13 => "", 14 => "", 15 => "", 16 => "", 17 => "", 18 => "", 19 => "", 20 => ""), 4 => array(0 => "", 1 => "", 2 => "", 3 => "", 4 => "", 5 => "", 6 => "", 7 => "", 8 => "", 9 => ""), 6 => array(2 => "", 3 => ""), 7 => array(0 => "", 1 => "", 2 => "", 3 => ""), 9 => array(0 => "", 1 => "", 2 => "", 3 => "", 4 => "", 5 => "", 6 => "", 7 => "", 8 => "", 9 => "", 10 => ""), 11 => array(2 => "", 3 => ""), 13 => array(0 => "", 1 => "")); $subclass[$item['class']][$item['subclass']] = " selected=\"selected\" "; $output .= "<td>" . makeinfocell($lang_item_edit['subclass'], $lang_item_edit['subclass_desc']) . "</td>\n <td colspan=\"3\"><select name=\"subclass\">\n <option value=\"0\" {$subclass[0][0]}>0 - {$lang_item['none']}</option>\n <optgroup label=\"Class 0: {$lang_item['consumable']}\">\n <option value=\"0\" {$subclass[0][0]}>0 - {$lang_item['consumable']}</option>\n <option value=\"3\" {$subclass[0][3]}>3 - {$lang_item['potion']}</option>\n <option value=\"4\" {$subclass[0][4]}>4 - {$lang_item['scroll']}</option>\n <option value=\"5\" {$subclass[0][5]}>5 - {$lang_item['bandage']}</option>\n <option value=\"6\" {$subclass[0][6]}>6 - {$lang_item['healthstone']}</option>\n <option value=\"7\" {$subclass[0][7]}>7 - {$lang_item['combat_effect']}</option>\n <optgroup label=\"Class 1: {$lang_item['bag']}\">\n <option value=\"0\" {$subclass[1][0]}>0 - {$lang_item['bag']}</option>\n <option value=\"1\" {$subclass[1][1]}>1 - {$lang_item['soul_shards']}</option>\n <option value=\"2\" {$subclass[1][2]}>2 - {$lang_item['herbs']}</option>\n <option value=\"3\" {$subclass[1][3]}>3 - {$lang_item['enchanting']}</option>\n <option value=\"4\" {$subclass[1][4]}>4 - {$lang_item['engineering']}</option>\n <option value=\"5\" {$subclass[1][5]}>5 - {$lang_item['gems']}</option>\n <option value=\"6\" {$subclass[1][6]}>6 - {$lang_item['mining']}</option>\n <optgroup label=\"Class 2: {$lang_item['weapon']}\">\n <option value=\"0\" {$subclass[2][0]}>0 - {$lang_item['axe_1h']}</option>\n <option value=\"1\" {$subclass[2][2]}>1 - {$lang_item['axe_2h']}</option>\n <option value=\"2\" {$subclass[2][2]}>2 - {$lang_item['bow']}</option>\n <option value=\"3\" {$subclass[2][2]}>3 - {$lang_item['rifle']}</option>\n <option value=\"4\" {$subclass[2][4]}>4 - {$lang_item['mace_1h']}</option>\n <option value=\"5\" {$subclass[2][5]}>5 - {$lang_item['mace_2h']}</option>\n <option value=\"6\" {$subclass[2][6]}>6 - {$lang_item['polearm']}</option>\n <option value=\"7\" {$subclass[2][7]}>7 - {$lang_item['sword_1h']}</option>\n <option value=\"8\" {$subclass[2][8]}>8 - {$lang_item['sword_2h']}</option>\n <option value=\"10\" {$subclass[2][10]}>10 - {$lang_item['staff']}</option>\n <option value=\"11\" {$subclass[2][11]}>11 - {$lang_item['exotic_1h']}</option>\n <option value=\"12\" {$subclass[2][12]}>12 - {$lang_item['exotic_2h']}</option>\n <option value=\"13\" {$subclass[2][13]}>13 - {$lang_item['fist_weapon']}</option>\n <option value=\"14\" {$subclass[2][14]}>14 - {$lang_item['misc_weapon']}</option>\n <option value=\"15\" {$subclass[2][15]}>15 - {$lang_item['dagger']}</option>\n <option value=\"16\" {$subclass[2][16]}>16 - {$lang_item['thrown']}</option>\n <option value=\"17\" {$subclass[2][17]}>17 - {$lang_item['spear']}</option>\n <option value=\"18\" {$subclass[2][18]}>18 - {$lang_item['crossbow']}</option>\n <option value=\"19\" {$subclass[2][19]}>19 - {$lang_item['wand']}</option>\n <option value=\"20\" {$subclass[2][20]}>20 - {$lang_item['fishing_pole']}</option>\n </optgroup>\n <optgroup label=\"Class 4: {$lang_item['armor']}\">\n <option value=\"0\" {$subclass[4][0]}>0 - {$lang_item['misc']}</option>\n <option value=\"1\" {$subclass[4][1]}>1 - {$lang_item['cloth']}</option>\n <option value=\"2\" {$subclass[4][2]}>2 - {$lang_item['leather']}</option>\n <option value=\"3\" {$subclass[4][3]}>3 - {$lang_item['mail']}</option>\n <option value=\"4\" {$subclass[4][4]}>4 - {$lang_item['plate']}</option>\n <option value=\"5\" {$subclass[4][5]}>5 - {$lang_item['buckler']}</option>\n <option value=\"6\" {$subclass[4][6]}>6 - {$lang_item['shield']}</option>\n <option value=\"7\" {$subclass[4][7]}>7 - {$lang_item['libram']}</option>\n <option value=\"8\" {$subclass[4][8]}>8 - {$lang_item['idol']}</option>\n <option value=\"9\" {$subclass[4][9]}>9 - {$lang_item['totem']}</option>\n </optgroup>\n <optgroup label=\"Class 6: {$lang_item['projectile']}\">\n <option value=\"2\" {$subclass[6][2]}>2 - {$lang_item['arrows']}</option>\n <option value=\"3\" {$subclass[6][3]}>3 - {$lang_item['bullets']}</option>\n </optgroup>\n <optgroup label=\"Class 7: {$lang_item['trade_goods']}\">\n <option value=\"0\" {$subclass[7][0]}>0 - {$lang_item['trade_goods']}</option>\n <option value=\"1\" {$subclass[7][1]}>1 - {$lang_item['parts']}</option>\n <option value=\"2\" {$subclass[7][2]}>2 - {$lang_item['explosives']}</option>\n <option value=\"3\" {$subclass[7][3]}>3 - {$lang_item['devices']}</option>\n </optgroup>\n <optgroup label=\"Class 9: {$lang_item['recipe']}\">\n <option value=\"0\" {$subclass[9][0]}>0 - {$lang_item['book']}</option>\n <option value=\"1\" {$subclass[9][1]}>1 - {$lang_item['LW_pattern']}</option>\n <option value=\"2\" {$subclass[9][2]}>2 - {$lang_item['tailoring_pattern']}</option>\n <option value=\"3\" {$subclass[9][3]}>3 - {$lang_item['ENG_Schematic']}</option>\n <option value=\"4\" {$subclass[9][4]}>4 - {$lang_item['BS_plans']}</option>\n <option value=\"5\" {$subclass[9][5]}>5 - {$lang_item['cooking_recipe']}</option>\n <option value=\"6\" {$subclass[9][6]}>6 - {$lang_item['alchemy_recipe']}</option>\n <option value=\"7\" {$subclass[9][7]}>7 - {$lang_item['FA_manual']}</option>\n <option value=\"8\" {$subclass[9][8]}>8 - {$lang_item['ench_formula']}</option>\n <option value=\"9\" {$subclass[9][9]}>9 - {$lang_item['fishing_manual']}</option>\n <option value=\"10\" {$subclass[9][10]}>10 - {$lang_item['JC_formula']}</option>\n </optgroup>\n <optgroup label=\"Class 11: {$lang_item['quiver']}\">\n <option value=\"2\" {$subclass[11][2]}>2 - {$lang_item['quiver']}</option>\n <option value=\"3\" {$subclass[11][3]}>3 - {$lang_item['ammo_pouch']}</option>\n </optgroup>\n <optgroup label=\"Class 13: {$lang_item['key']}\">\n <option value=\"0\" {$subclass[13][0]}>0 - {$lang_item['key']}</option>\n <option value=\"1\" {$subclass[13][1]}>1 - {$lang_item['lockpick']}</option>\n </optgroup>\n </select></td>\n</tr>\n<tr>"; unset($subclass); $quality = array(0 => "", 1 => "", 2 => "", 3 => "", 4 => "", 5 => "", 6 => ""); $quality[$item['Quality']] = " selected=\"selected\" "; $output .= "<td>" . makeinfocell($lang_item_edit['quality'], $lang_item_edit['quality_desc']) . "</td>\n <td colspan=\"2\"><select name=\"Quality\">\n <option value=\"0\" {$quality[0]}>0 - {$lang_item['poor']}</option>\n <option value=\"1\" {$quality[1]}>1 - {$lang_item['common']}</option>\n <option value=\"2\" {$quality[2]}>2 - {$lang_item['uncommon']}</option>\n <option value=\"3\" {$quality[3]}>3 - {$lang_item['rare']}</option>\n <option value=\"4\" {$quality[4]}>4 - {$lang_item['epic']}</option>\n <option value=\"5\" {$quality[5]}>5 - {$lang_item['legendary']}</option>\n <option value=\"6\" {$quality[6]}>6 - {$lang_item['artifact']}</option>\n </select></td>"; unset($quality); $inv_type = array(0 => "", 1 => "", 2 => "", 3 => "", 4 => "", 5 => "", 6 => "", 7 => "", 8 => "", 9 => "", 10 => "", 11 => "", 12 => "", 13 => "", 14 => "", 15 => "", 16 => "", 17 => "", 18 => "", 19 => "", 20 => "", 21 => "", 22 => "", 23 => "", 24 => "", 25 => "", 26 => ""); $inv_type[$item['InventoryType']] = " selected=\"selected\" "; $output .= "<td>" . makeinfocell($lang_item_edit['inv_type'], $lang_item_edit['inv_type_desc']) . "</td>\n <td colspan=\"2\"><select name=\"InventoryType\">\n <option value=\"0\" {$inv_type[0]}>0 - {$lang_item['other']}</option>\n <option value=\"1\" {$inv_type[1]}>1 - {$lang_item['head']}</option>\n <option value=\"2\" {$inv_type[2]}>2 - {$lang_item['neck']}</option>\n <option value=\"3\" {$inv_type[3]}>3 - {$lang_item['shoulder']}</option>\n <option value=\"4\" {$inv_type[4]}>4 - {$lang_item['shirt']}</option>\n <option value=\"5\" {$inv_type[5]}>5 - {$lang_item['chest']}</option>\n <option value=\"6\" {$inv_type[6]}>6 - {$lang_item['belt']}</option>\n <option value=\"7\" {$inv_type[7]}>7 - {$lang_item['legs']}</option>\n <option value=\"8\" {$inv_type[8]}>8 - {$lang_item['feet']}</option>\n <option value=\"9\" {$inv_type[9]}>9 - {$lang_item['belt']}</option>\n <option value=\"10\" {$inv_type[10]}>10 - {$lang_item['gloves']}</option>\n <option value=\"11\" {$inv_type[11]}>11 - {$lang_item['finger']}</option>\n <option value=\"12\" {$inv_type[12]}>12 - {$lang_item['trinket']}</option>\n <option value=\"13\" {$inv_type[13]}>13 - {$lang_item['one_hand']}</option>\n <option value=\"14\" {$inv_type[14]}>14 - {$lang_item['off_hand']}</option>\n <option value=\"15\" {$inv_type[15]}>15 - {$lang_item['bow']}</option>\n <option value=\"16\" {$inv_type[16]}>16 - {$lang_item['back']}</option>\n <option value=\"17\" {$inv_type[17]}>17 - {$lang_item['two_hand']}</option>\n <option value=\"18\" {$inv_type[18]}>18 - {$lang_item['bag']}</option>\n <option value=\"19\" {$inv_type[19]}>19 - {$lang_item['tabard']}</option>\n <option value=\"20\" {$inv_type[20]}>20 - {$lang_item['robe']}</option>\n <option value=\"21\" {$inv_type[21]}>21 - {$lang_item['main_hand']}</option>\n <option value=\"22\" {$inv_type[22]}>22 - {$lang_item['off_misc']}</option>\n <option value=\"23\" {$inv_type[23]}>23 - {$lang_item['tome']}</option>\n <option value=\"24\" {$inv_type[24]}>24 - {$lang_item['projectile']}</option>\n <option value=\"25\" {$inv_type[25]}>25 - {$lang_item['thrown']}</option>\n <option value=\"26\" {$inv_type[26]}>26 - {$lang_item['rifle']}</option>\n </select></td>\n\n <td>" . makeinfocell($lang_item_edit['flags'], $lang_item_edit['flags_desc']) . "</td>\n <td><input type=\"text\" name=\"Flags\" size=\"10\" maxlength=\"30\" value=\"{$item['Flags']}\" /></td>\n </tr>\n\n <tr>\n <td>" . makeinfocell($lang_item_edit['item_set'], $lang_item_edit['item_set_desc']) . "</td>\n <td><input type=\"text\" name=\"itemset\" size=\"10\" maxlength=\"30\" value=\"{$item['itemset']}\" /></td>"; unset($inv_type); $bonding = array(0 => "", 1 => "", 2 => "", 3 => "", 4 => "", 5 => ""); $bonding[$item['bonding']] = " selected=\"selected\" "; $output .= "<td>" . makeinfocell($lang_item_edit['bonding'], $lang_item_edit['bonding_desc']) . "</td>\n <td colspan=\"3\"><select name=\"bonding\">\n <option value=\"0\" {$bonding[0]}>0 - {$lang_item['no_bind']}</option>\n <option value=\"1\" {$bonding[1]}>1 - {$lang_item['bop']}</option>\n <option value=\"2\" {$bonding[2]}>2 - {$lang_item['boe']}</option>\n <option value=\"3\" {$bonding[3]}>3 - {$lang_item['bou']}</option>\n <option value=\"4\" {$bonding[4]}>4 - {$lang_item['quest_item']}</option>\n <option value=\"5\" {$bonding[5]}>5 - {$lang_item['quest_item']}1</option>\n </select></td>\n\n<td>" . makeinfocell($lang_item_edit['start_quest'], $lang_item_edit['start_quest_desc']) . "</td>\n<td><input type=\"text\" name=\"startquest\" size=\"10\" maxlength=\"30\" value=\"{$item['startquest']}\" /></td>\n\n</tr>\n</table>\n<br />{$lang_item_edit['short_rules_desc']}<br /><br />\n</div>"; unset($bonding); $output .= "<div id=\"pane2\">\n <br /><br /><table class=\"lined\" style=\"width: 720px;\">\n <tr class=\"large_bold\"><td colspan=\"8\" class=\"hidden\" align=\"left\">{$lang_item_edit['vendor']}:</td></tr>\n <tr>\n <td>" . makeinfocell($lang_item_edit['buy_count'], $lang_item_edit['buy_count_desc']) . "</td>\n <td><input type=\"text\" name=\"BuyCount\" size=\"8\" maxlength=\"3\" value=\"{$item['BuyCount']}\" /></td>\n\n <td>" . makeinfocell($lang_item_edit['buy_price'], $lang_item_edit['buy_price_desc']) . "</td>\n <td><input type=\"text\" name=\"BuyPrice\" size=\"8\" maxlength=\"30\" value=\"{$item['BuyPrice']}\" /></td>\n\n <td>" . makeinfocell($lang_item_edit['sell_price'], $lang_item_edit['sell_price_desc']) . "</td>\n <td><input type=\"text\" name=\"SellPrice\" size=\"8\" maxlength=\"30\" value=\"{$item['SellPrice']}\" /></td>\n <td></td><td></td>\n </tr>\n\n <tr class=\"large_bold\"><td colspan=\"8\" class=\"hidden\" align=\"left\">{$lang_item_edit['container']}:</td></tr>\n <tr>\n\n <td>" . makeinfocell($lang_item_edit['max_count'], $lang_item_edit['max_count_desc']) . "</td>\n <td><input type=\"text\" name=\"maxcount\" size=\"6\" maxlength=\"5\" value=\"{$item['maxcount']}\" /></td>\n\n <td>" . makeinfocell($lang_item_edit['stackable'], $lang_item_edit['stackable_desc']) . "</td>\n <td><input type=\"text\" name=\"stackable\" size=\"6\" maxlength=\"5\" value=\"{$item['stackable']}\" /></td>\n\n <td>" . makeinfocell($lang_item_edit['bag_family'], $lang_item_edit['bag_family_desc']) . "</td>"; $bagfamily = array(0 => "", 1 => "", 2 => "", 3 => "", 6 => "", 7 => "", 8 => "", 9 => "", 10 => "", 12 => ""); $bagfamily[$item['BagFamily']] = " selected=\"selected\" "; $output .= "<td><select name=\"BagFamily\">\n <option value=\"0\" {$bagfamily[0]}>0 - {$lang_item['none']}</option>\n <option value=\"1\" {$bagfamily[1]}>1 - {$lang_item['arrows']}</option>\n <option value=\"2\" {$bagfamily[2]}>2 - {$lang_item['bullets']}</option>\n <option value=\"3\" {$bagfamily[3]}>3 - {$lang_item['soul_shards']}</option>\n <option value=\"6\" {$bagfamily[6]}>6 - {$lang_item['herbs']}</option>\n <option value=\"7\" {$bagfamily[7]}>7 - {$lang_item['enchanting']}</option>\n <option value=\"8\" {$bagfamily[8]}>8 - {$lang_item['engineering']}</option>\n <option value=\"9\" {$bagfamily[9]}>9 - {$lang_item['keys']}</option>\n <option value=\"10\" {$bagfamily[10]}>10 - {$lang_item['gems']}</option>\n <option value=\"12\" {$bagfamily[12]}>12 - {$lang_item['mining']}</option>\n </select></td>\n <td>" . makeinfocell($lang_item_edit['bag_slots'], $lang_item_edit['bag_slots_desc']) . "</td>\n <td><input type=\"text\" name=\"ContainerSlots\" size=\"10\" maxlength=\"3\" value=\"{$item['ContainerSlots']}\" /></td>\n </tr>\n <tr>\n\n <tr class=\"large_bold\"><td colspan=\"8\" class=\"hidden\" align=\"left\">{$lang_item_edit['materials']}:</td></tr>"; unset($bagfamily); $Material = array(-1 => "", 0 => "", 1 => "", 2 => "", 3 => "", 4 => "", 5 => "", 6 => "", 7 => "", 8 => ""); $Material[$item['Material']] = " selected=\"selected\" "; $output .= "<tr>\n <td>" . makeinfocell($lang_item_edit['material'], $lang_item_edit['material_desc']) . "</td>\n <td colspan=\"2\"><select name=\"Material\">\n <option value=\"-1\" {$Material[-1]}>-1 - {$lang_item_edit['consumables']}</option>\n <option value=\"0\" {$Material[0]}>0 - {$lang_item_edit['none']}</option>\n <option value=\"1\" {$Material[1]}>1 - {$lang_item_edit['metal']}</option>\n <option value=\"2\" {$Material[2]}>2 - {$lang_item_edit['wood']}</option>\n <option value=\"3\" {$Material[3]}>3 - {$lang_item_edit['liquid']}</option>\n <option value=\"4\" {$Material[4]}>4 - {$lang_item_edit['jewelry']}</option>\n <option value=\"5\" {$Material[5]}>5 - {$lang_item_edit['chain']}</option>\n <option value=\"6\" {$Material[6]}>6 - {$lang_item_edit['plate']}</option>\n <option value=\"7\" {$Material[7]}>7 - {$lang_item_edit['cloth']}</option>\n <option value=\"8\" {$Material[8]}>8 - {$lang_item_edit['leather']}</option>\n </select></td>"; unset($Material); $PageMaterial = array(0 => "", 1 => "", 2 => "", 3 => "", 4 => "", 5 => ""); $PageMaterial[$item['PageMaterial']] = " selected=\"selected\" "; $output .= "<td>" . makeinfocell($lang_item_edit['page_material'], $lang_item_edit['page_material_desc']) . "</td>\n <td colspan=\"2\"><select name=\"PageMaterial\">\n <option value=\"0\" {$PageMaterial[0]}>0 - {$lang_item_edit['none']}</option>\n <option value=\"1\" {$PageMaterial[1]}>1 - {$lang_item_edit['parchment']}</option>\n <option value=\"2\" {$PageMaterial[2]}>2 - {$lang_item_edit['stone']}</option>\n <option value=\"3\" {$PageMaterial[3]}>3 - {$lang_item_edit['marble']}</option>\n <option value=\"4\" {$PageMaterial[4]}>4 - {$lang_item_edit['silver']}</option>\n <option value=\"5\" {$PageMaterial[5]}>5 - {$lang_item_edit['bronze']}</option>\n </select></td>"; unset($PageMaterial); $output .= "<td>" . makeinfocell($lang_item_edit['max_durability'], $lang_item_edit['max_durability_desc']) . "</td>\n <td><input type=\"text\" name=\"MaxDurability\" size=\"8\" maxlength=\"30\" value=\"{$item['MaxDurability']}\" /></td>\n</tr>\n\n<tr class=\"large_bold\"><td colspan=\"8\" class=\"hidden\" align=\"left\">{$lang_item_edit['RandomProperty']}:</td></tr>\n<tr>\n <td colspan=\"2\">" . makeinfocell($lang_item_edit['RandomProperty'], $lang_item_edit['RandomProperty_desc']) . "</td>\n <td colspan=\"2\"><input type=\"text\" name=\"RandomProperty\" size=\"8\" maxlength=\"30\" value=\"{$item['RandomProperty']}\" /></td>\n\n <td colspan=\"2\">" . makeinfocell($lang_item_edit['RandomSuffix'], $lang_item_edit['RandomSuffix_desc']) . "</td>\n <td colspan=\"2\"><input type=\"text\" name=\"RandomSuffix\" size=\"8\" maxlength=\"10\" value=\"{$item['RandomSuffix']}\" /></td>\n</tr>\n\n\n<tr class=\"large_bold\"><td colspan=\"8\" class=\"hidden\" align=\"left\">{$lang_item_edit['other']}:</td></tr>\n <tr>\n <td>" . makeinfocell($lang_item_edit['area'], $lang_item_edit['area_desc']) . "</td>\n <td><input type=\"text\" name=\"area\" size=\"8\" maxlength=\"10\" value=\"{$item['area']}\" /></td>\n\n <td>" . makeinfocell($lang_item_edit['map'], $lang_item_edit['map_desc']) . "</td>\n <td><input type=\"text\" name=\"Map\" size=\"8\" maxlength=\"10\" value=\"{$item['Map']}\" /></td>\n\n <td>" . makeinfocell($lang_item_edit['page_text'], $lang_item_edit['page_text_desc']) . "</td>\n <td><input type=\"text\" name=\"PageText\" size=\"6\" maxlength=\"30\" value=\"{$item['PageText']}\" /></td>\n\n <td>" . makeinfocell($lang_item_edit['unk0'], $lang_item_edit['unk0_desc']) . "</td>\n <td><input type=\"text\" name=\"unk0\" size=\"8\" maxlength=\"10\" value=\"{$item['unk0']}\" /></td>\n </tr>\n <tr>\n\n <tr>\n <td colspan=\"2\">" . makeinfocell($lang_item_edit['disenchant_id'], $lang_item_edit['disenchant_id_desc']) . "</td>\n <td><input type=\"text\" name=\"DisenchantID\" size=\"10\" maxlength=\"10\" value=\"{$item['DisenchantID']}\" /></td>\n\n <td colspan=\"2\">" . makeinfocell($lang_item_edit['req_skill_disenchant'], $lang_item_edit['req_skill_disenchant_desc']) . "</td>\n <td><input type=\"text\" name=\"RequiredDisenchantSkill\" size=\"10\" maxlength=\"10\" value=\"{$item['RequiredDisenchantSkill']}\" /></td>\n\n <td>" . makeinfocell($lang_item_edit['lock_id'], $lang_item_edit['lock_id_desc']) . "</td>\n <td><input type=\"text\" name=\"lockid\" size=\"8\" maxlength=\"30\" value=\"{$item['lockid']}\" /></td>\n </tr>"; $LanguageID = array(0 => "", 1 => "", 2 => "", 3 => "", 6 => "", 7 => "", 8 => "", 9 => "", 10 => "", 11 => "", 12 => "", 13 => "", 14 => "", 33 => ""); $LanguageID[$item['LanguageID']] = " selected=\"selected\" "; $output .= "<tr>\n <td>" . makeinfocell($lang_item_edit['lang_id'], $lang_item_edit['lang_id_desc']) . "</td>\n <td colspan=\"2\"><select name=\"LanguageID\">\n <option value=\"0\" {$LanguageID[0]}>0 - {$lang_item_edit['other']}</option>\n <option value=\"1\" {$LanguageID[1]}>1 - Orcish</option>\n <option value=\"2\" {$LanguageID[2]}>2 - Darnassian</option>\n <option value=\"3\" {$LanguageID[3]}>3 - Taurahe</option>\n <option value=\"6\" {$LanguageID[6]}>6 - Dwarvish</option>\n <option value=\"7\" {$LanguageID[7]}>7 - Common</option>\n <option value=\"8\" {$LanguageID[8]}>8 - Demonic</option>\n <option value=\"9\" {$LanguageID[9]}>9 - Titan</option>\n <option value=\"10\" {$LanguageID[10]}>10 - Thelassian</option>\n <option value=\"11\" {$LanguageID[11]}>11 - Draconic</option>\n <option value=\"12\" {$LanguageID[12]}>12 - Kalimag</option>\n <option value=\"13\" {$LanguageID[13]}>13 - Gnomish</option>\n <option value=\"14\" {$LanguageID[14]}>14 - Troll</option>\n <option value=\"33\" {$LanguageID[33]}>33 - Gutterspeak</option>\n </select></td>"; unset($LanguageID); $sheath = array(0 => "", 1 => "", 2 => "", 3 => "", 4 => "", 5 => "", 7 => ""); $sheath[$item['sheath']] = " selected=\"selected\" "; $output .= "<td>" . makeinfocell($lang_item_edit['sheath'], $lang_item_edit['sheath_desc']) . "</td>\n <td colspan=\"2\"><select name=\"sheath\">\n <option value=\"0\" {$sheath[0]}>0 - {$lang_item_edit['other']}</option>\n <option value=\"1\" {$sheath[1]}>1 - {$lang_item['sword_2h']}</option>\n <option value=\"2\" {$sheath[2]}>2 - {$lang_item['staff']}</option>\n <option value=\"3\" {$sheath[3]}>3 - {$lang_item['sword_1h']}</option>\n <option value=\"4\" {$sheath[4]}>4 - {$lang_item['shield']}</option>\n <option value=\"5\" {$sheath[5]}>5 - {$lang_item['rod']}</option>\n <option value=\"7\" {$sheath[7]}>7 - {$lang_item['off_hand']}</option>\n </select></td>\n\n <td>" . makeinfocell($lang_item_edit['totem_category'], $lang_item_edit['totem_category_desc']) . "</td>\n <td><input type=\"text\" name=\"TotemCategory\" size=\"8\" maxlength=\"10\" value=\"{$item['TotemCategory']}\" /></td>\n </tr>\n\n </table><br /><br />\n </div>"; unset($sheath); $output .= "<div id=\"pane3\">\n <br /><br /><table class=\"lined\" style=\"width: 720px;\">\n <tr class=\"large_bold\"><td colspan=\"8\" class=\"hidden\" align=\"left\">{$lang_item_edit['stats']}:</td></tr>\n <tr>\n\n <td>" . makeinfocell($lang_item_edit['stat_type'] . " 1", $lang_item_edit['stat_type_desc']) . "</td>\n <td><select name=\"stat_type1\">"; output_status_options($item['stat_type1']); $output .= "</select></td>\n\n <td><input type=\"text\" name=\"stat_value1\" size=\"10\" maxlength=\"6\" value=\"{$item['stat_value1']}\" /></td>\n <td>" . makeinfocell($lang_item_edit['stat_type'] . " 2", $lang_item_edit['stat_type_desc']) . "</td>\n <td><select name=\"stat_type2\">"; output_status_options($item['stat_type2']); $output .= "</select></td>\n\n <td><input type=\"text\" name=\"stat_value2\" size=\"10\" maxlength=\"6\" value=\"{$item['stat_value2']}\" /></td>\n </tr>\n <tr>\n <td>" . makeinfocell($lang_item_edit['stat_type'] . " 3", $lang_item_edit['stat_type_desc']) . "</td>\n <td><select name=\"stat_type3\">"; output_status_options($item['stat_type3']); $output .= "</select></td>\n\n <td><input type=\"text\" name=\"stat_value3\" size=\"10\" maxlength=\"6\" value=\"{$item['stat_value3']}\" /></td>\n <td>" . makeinfocell($lang_item_edit['stat_type'] . " 4", $lang_item_edit['stat_type_desc']) . "</td>\n <td><select name=\"stat_type4\">"; output_status_options($item['stat_type4']); $output .= "</select></td>\n\n <td><input type=\"text\" name=\"stat_value4\" size=\"10\" maxlength=\"6\" value=\"{$item['stat_value4']}\" /></td>\n </tr>\n<tr>\n <td>" . makeinfocell($lang_item_edit['stat_type'] . " 5", $lang_item_edit['stat_type_desc']) . "</td>\n <td><select name=\"stat_type5\">"; output_status_options($item['stat_type5']); $output .= "</select></td>\n\n <td><input type=\"text\" name=\"stat_value5\" size=\"10\" maxlength=\"6\" value=\"{$item['stat_value5']}\" /></td>\n <td>" . makeinfocell($lang_item_edit['stat_type'] . " 6", $lang_item_edit['stat_type_desc']) . "</td>\n <td><select name=\"stat_type6\">"; output_status_options($item['stat_type1']); $output .= "</select></td>\n\n <td><input type=\"text\" name=\"stat_value6\" size=\"10\" maxlength=\"6\" value=\"{$item['stat_value6']}\" /></td>\n </tr>\n<tr>\n <td>" . makeinfocell($lang_item_edit['stat_type'] . " 7", $lang_item_edit['stat_type_desc']) . "</td>\n <td><select name=\"stat_type7\">"; output_status_options($item['stat_type7']); $output .= "</select></td>\n <td><input type=\"text\" name=\"stat_value7\" size=\"10\" maxlength=\"6\" value=\"{$item['stat_value7']}\" /></td>\n <td>" . makeinfocell($lang_item_edit['stat_type'] . " 8", $lang_item_edit['stat_type_desc']) . "</td>\n <td><select name=\"stat_type8\">"; output_status_options($item['stat_type8']); $output .= "</select></td>\n\n <td><input type=\"text\" name=\"stat_value8\" size=\"10\" maxlength=\"6\" value=\"{$item['stat_value8']}\" /></td>\n </tr>\n<tr>\n <td>" . makeinfocell($lang_item_edit['stat_type'] . " 9", $lang_item_edit['stat_type_desc']) . "</td>\n <td><select name=\"stat_type9\">"; output_status_options($item['stat_type9']); $output .= "</select></td>\n <td><input type=\"text\" name=\"stat_value9\" size=\"10\" maxlength=\"6\" value=\"{$item['stat_value9']}\" /></td>\n <td>" . makeinfocell($lang_item_edit['stat_type'] . " 10", $lang_item_edit['stat_type_desc']) . "</td>\n <td><select name=\"stat_type10\">"; output_status_options($item['stat_type10']); $output .= "</select></td>\n\n <td><input type=\"text\" name=\"stat_value10\" size=\"10\" maxlength=\"6\" value=\"{$item['stat_value10']}\" /></td>\n </tr>\n\n <tr class=\"large_bold\"><td colspan=\"8\" class=\"hidden\" align=\"left\">{$lang_item_edit['resis_armor']}:</td></tr>\n <tr>\n <td colspan=\"2\">" . makeinfocell($lang_item['armor'], $lang_item_edit['armor_desc']) . "</td>\n <td><input type=\"text\" name=\"armor\" size=\"10\" maxlength=\"30\" value=\"{$item['armor']}\" /></td>\n\n <td colspan=\"2\">" . makeinfocell($lang_item['block'], $lang_item_edit['block_desc']) . "</td>\n <td><input type=\"text\" name=\"block\" size=\"10\" maxlength=\"30\" value=\"{$item['block']}\" /></td>\n </tr>\n <tr>\n <td colspan=\"2\">" . makeinfocell($lang_item['res_holy'], $lang_item_edit['res_holy_desc']) . "</td>\n <td><input type=\"text\" name=\"holy_res\" size=\"10\" maxlength=\"30\" value=\"{$item['holy_res']}\" /></td>\n\n <td colspan=\"2\">" . makeinfocell($lang_item['res_fire'], $lang_item_edit['res_fire_desc']) . "</td>\n <td><input type=\"text\" name=\"fire_res\" size=\"10\" maxlength=\"30\" value=\"{$item['fire_res']}\" /></td>\n </tr>\n <tr>\n <td colspan=\"2\">" . makeinfocell($lang_item['res_nature'], $lang_item_edit['res_nature_desc']) . "</td>\n <td><input type=\"text\" name=\"nature_res\" size=\"10\" maxlength=\"30\" value=\"{$item['nature_res']}\" /></td>\n\n <td colspan=\"2\">" . makeinfocell($lang_item['res_frost'], $lang_item_edit['res_frost_desc']) . "</td>\n <td><input type=\"text\" name=\"frost_res\" size=\"10\" maxlength=\"30\" value=\"{$item['frost_res']}\" /></td>\n </tr>\n <tr>\n <td colspan=\"2\">" . makeinfocell($lang_item['res_shadow'], $lang_item_edit['res_shadow_desc']) . "</td>\n <td><input type=\"text\" name=\"shadow_res\" size=\"10\" maxlength=\"30\" value=\"{$item['shadow_res']}\" /></td>\n\n <td colspan=\"2\">" . makeinfocell($lang_item['res_arcane'], $lang_item_edit['res_arcane_desc']) . "</td>\n <td><input type=\"text\" name=\"arcane_res\" size=\"10\" maxlength=\"30\" value=\"{$item['arcane_res']}\" /></td>\n </tr>\n\n </table><br /><br />\n </div>"; $output .= "<div id=\"pane4\">\n <br /><br /><table class=\"lined\" style=\"width: 720px;\">\n <tr class=\"large_bold\"><td colspan=\"8\" class=\"hidden\" align=\"left\">{$lang_item_edit['weapon_properties']}:</td></tr>\n<tr>\n <td>" . makeinfocell($lang_item_edit['delay'], $lang_item_edit['delay_desc']) . "</td>\n <td colspan=\"2\"><input type=\"text\" name=\"delay\" size=\"10\" maxlength=\"11\" value=\"{$item['delay']}\" /></td>\n\n <td>" . makeinfocell($lang_item_edit['ranged_mod'], $lang_item_edit['ranged_mod_desc']) . "</td>\n <td colspan=\"2\"><input type=\"text\" name=\"RangedModRange\" size=\"10\" maxlength=\"40\" value=\"{$item['RangedModRange']}\" /></td>\n</tr>\n<tr>\n <td>" . makeinfocell($lang_item_edit['armor_dmg_mod'], $lang_item_edit['armor_dmg_mod_desc']) . "</td>\n <td colspan=\"2\"><input type=\"text\" name=\"ArmorDamageModifier\" size=\"10\" maxlength=\"40\" value=\"{$item['ArmorDamageModifier']}\" /></td>"; $ammo_type = array(0 => "", 2 => "", 3 => ""); $ammo_type[$item['ammo_type']] = " selected=\"selected\" "; $output .= "<td>" . makeinfocell($lang_item_edit['ammo_type'], $lang_item_edit['ammo_type_desc']) . "</td>\n <td colspan=\"2\"><select name=\"ammo_type\">\n <option value=\"0\" {$ammo_type[0]}>0 - {$lang_item['none']}</option>\n <option value=\"2\" {$ammo_type[2]}>2 - {$lang_item['arrows']}</option>\n <option value=\"3\" {$ammo_type[3]}>3 - {$lang_item['bullets']}</option>\n </select></td>\n</tr>\n<tr class=\"large_bold\"><td colspan=\"8\" class=\"hidden\" align=\"left\">{$lang_item_edit['weapon_damage']}:</td></tr>\n<tr>"; unset($ammo_type); $output .= "<td>" . makeinfocell($lang_item_edit['damage_type'] . " 1", $lang_item_edit['damage_type_desc']) . "</td>\n <td colspan=\"2\"><select name=\"dmg_type1\">"; output_dmgtype_options($item['dmg_type1']); $output .= "</select></td>\n\n <td>" . makeinfocell($lang_item_edit['dmg_min_max'], $lang_item_edit['dmg_min_max_desc']) . "</td>\n <td colspan=\"4\"><input type=\"text\" name=\"dmg_min1\" size=\"8\" maxlength=\"45\" value=\"{$item['dmg_min1']}\" /> - <input type=\"text\" name=\"dmg_max1\" size=\"8\" maxlength=\"45\" value=\"{$item['dmg_max1']}\" /></td>\n\n</tr>\n<tr>\n <td>" . makeinfocell($lang_item_edit['damage_type'] . " 2", $lang_item_edit['damage_type_desc']) . "</td>\n <td colspan=\"2\"><select name=\"dmg_type2\">"; output_dmgtype_options($item['dmg_type2']); $output .= "</select></td>\n\n <td>" . makeinfocell($lang_item_edit['dmg_min_max'], $lang_item_edit['dmg_min_max_desc']) . "</td>\n <td colspan=\"4\"><input type=\"text\" name=\"dmg_min2\" size=\"8\" maxlength=\"45\" value=\"{$item['dmg_min2']}\" /> - <input type=\"text\" name=\"dmg_max2\" size=\"8\" maxlength=\"45\" value=\"{$item['dmg_max2']}\" /></td>\n\n</tr>\n</table><br /><br />\n </div>"; $output .= "<div id=\"pane5\">\n <br /><br /><table class=\"lined\" style=\"width: 720px;\">\n<tr>\n <td colspan=\"2\">{$lang_item_edit['item_spell']} 1</td>\n <td>" . makeinfocell($lang_item_edit['spell_id'], $lang_item_edit['spell_id_desc']) . "</td>\n <td><input type=\"text\" name=\"spellid_1\" size=\"6\" maxlength=\"30\" value=\"{$item['spellid_1']}\" /></td>"; $spelltrigger_1 = array(0 => "", 1 => "", 2 => "", 4 => ""); $spelltrigger_1[$item['spelltrigger_1']] = " selected=\"selected\" "; $output .= "<td>" . makeinfocell($lang_item_edit['spell_trigger'], $lang_item_edit['spell_trigger_desc']) . "</td>\n <td><select name=\"spelltrigger_1\">\n <option value=\"0\" {$spelltrigger_1[0]}>0: {$lang_item['spell_use']}</option>\n <option value=\"1\" {$spelltrigger_1[1]}>1: {$lang_item['spell_equip']}</option>\n <option value=\"2\" {$spelltrigger_1[2]}>2: {$lang_item['spell_coh']}</option>\n <option value=\"4\" {$spelltrigger_1[4]}>4: {$lang_item['soul_stone']}</option>\n </select></td>\n <td>" . makeinfocell($lang_item_edit['spell_charges'], $lang_item_edit['spell_charges_desc']) . "</td>\n <td><input type=\"text\" name=\"spellcharges_1\" size=\"6\" maxlength=\"30\" value=\"{$item['spellcharges_1']}\" /></td>\n</tr>\n<tr>\n <td>" . makeinfocell($lang_item_edit['spell_cooldown'], $lang_item_edit['spell_cooldown_desc']) . "</td>\n <td><input type=\"text\" name=\"spellcooldown_1\" size=\"6\" maxlength=\"30\" value=\"{$item['spellcooldown_1']}\" /></td>\n\n <td>" . makeinfocell($lang_item_edit['spell_category'], $lang_item_edit['spell_category_desc']) . "</td>\n <td><input type=\"text\" name=\"spellcategory_1\" size=\"6\" maxlength=\"30\" value=\"{$item['spellcategory_1']}\" /></td>\n\n <td>" . makeinfocell($lang_item_edit['spell_category_cooldown'], $lang_item_edit['spell_category_cooldown_desc']) . "</td>\n <td><input type=\"text\" name=\"spellcategorycooldown_1\" size=\"6\" maxlength=\"30\" value=\"{$item['spellcategorycooldown_1']}\" /></td>\n\n <td>" . makeinfocell($lang_item_edit['ppm_rate'], $lang_item_edit['ppm_rate_desc']) . "</td>\n <td><input type=\"text\" name=\"spellppmRate_1\" size=\"6\" maxlength=\"30\" value=\"{$item['spellppmRate_1']}\" /></td>\n</tr>\n<tr><td colspan=\"6\" class=\"hidden\"></td></tr>\n<tr>\n <td colspan=\"2\">{$lang_item_edit['item_spell']} 2</td>\n <td>" . makeinfocell($lang_item_edit['spell_id'], $lang_item_edit['spell_id_desc']) . "</td>\n <td><input type=\"text\" name=\"spellid_2\" size=\"6\" maxlength=\"30\" value=\"{$item['spellid_2']}\" /></td>"; unset($spelltrigger_1); $spelltrigger_2 = array(0 => "", 1 => "", 2 => "", 4 => ""); $spelltrigger_2[$item['spelltrigger_2']] = " selected=\"selected\" "; $output .= "<td>" . makeinfocell($lang_item_edit['spell_trigger'], $lang_item_edit['spell_trigger_desc']) . "</td>\n <td><select name=\"spelltrigger_2\">\n <option value=\"0\" {$spelltrigger_2[0]}>0: {$lang_item['spell_use']}</option>\n <option value=\"1\" {$spelltrigger_2[1]}>1: {$lang_item['spell_equip']}</option>\n <option value=\"2\" {$spelltrigger_2[2]}>2: {$lang_item['spell_coh']}</option>\n <option value=\"4\" {$spelltrigger_2[4]}>4: {$lang_item['soul_stone']}</option>\n </select></td>\n <td>" . makeinfocell($lang_item_edit['spell_charges'], $lang_item_edit['spell_charges_desc']) . "</td>\n <td><input type=\"text\" name=\"spellcharges_2\" size=\"6\" maxlength=\"30\" value=\"{$item['spellcharges_2']}\" /></td>\n</tr>\n<tr>\n <td>" . makeinfocell($lang_item_edit['spell_cooldown'], $lang_item_edit['spell_cooldown_desc']) . "</td>\n <td><input type=\"text\" name=\"spellcooldown_2\" size=\"6\" maxlength=\"30\" value=\"{$item['spellcooldown_2']}\" /></td>\n\n <td>" . makeinfocell($lang_item_edit['spell_category'], $lang_item_edit['spell_category_desc']) . "</td>\n <td><input type=\"text\" name=\"spellcategory_2\" size=\"6\" maxlength=\"30\" value=\"{$item['spellcategory_2']}\" /></td>\n\n <td>" . makeinfocell($lang_item_edit['spell_category_cooldown'], $lang_item_edit['spell_category_cooldown_desc']) . "</td>\n <td><input type=\"text\" name=\"spellcategorycooldown_2\" size=\"6\" maxlength=\"30\" value=\"{$item['spellcategorycooldown_2']}\" /></td>\n\n <td>" . makeinfocell($lang_item_edit['ppm_rate'], $lang_item_edit['ppm_rate_desc']) . "</td>\n <td><input type=\"text\" name=\"spellppmRate_2\" size=\"6\" maxlength=\"30\" value=\"{$item['spellppmRate_2']}\" /></td>\n</tr>\n<tr><td colspan=\"6\" class=\"hidden\"></td></tr>\n<tr>\n <td colspan=\"2\">{$lang_item_edit['item_spell']} 3</td>\n <td>" . makeinfocell($lang_item_edit['spell_id'], $lang_item_edit['spell_id_desc']) . "</td>\n <td><input type=\"text\" name=\"spellid_3\" size=\"6\" maxlength=\"30\" value=\"{$item['spellid_3']}\" /></td>"; unset($spelltrigger_2); $spelltrigger_3 = array(0 => "", 1 => "", 2 => "", 4 => ""); $spelltrigger_3[$item['spelltrigger_3']] = " selected=\"selected\" "; $output .= "<td>" . makeinfocell($lang_item_edit['spell_trigger'], $lang_item_edit['spell_trigger_desc']) . "</td>\n <td><select name=\"spelltrigger_3\">\n <option value=\"0\" {$spelltrigger_3[0]}>0: {$lang_item['spell_use']}</option>\n <option value=\"1\" {$spelltrigger_3[1]}>1: {$lang_item['spell_equip']}</option>\n <option value=\"2\" {$spelltrigger_3[2]}>2: {$lang_item['spell_coh']}</option>\n <option value=\"4\" {$spelltrigger_3[4]}>4: {$lang_item['soul_stone']}</option>\n </select></td>\n <td>" . makeinfocell($lang_item_edit['spell_charges'], $lang_item_edit['spell_charges_desc']) . "</td>\n <td><input type=\"text\" name=\"spellcharges_3\" size=\"6\" maxlength=\"30\" value=\"{$item['spellcharges_3']}\" /></td>\n</tr>\n<tr>\n <td>" . makeinfocell($lang_item_edit['spell_cooldown'], $lang_item_edit['spell_cooldown_desc']) . "</td>\n <td><input type=\"text\" name=\"spellcooldown_3\" size=\"6\" maxlength=\"30\" value=\"{$item['spellcooldown_3']}\" /></td>\n\n <td>" . makeinfocell($lang_item_edit['spell_category'], $lang_item_edit['spell_category_desc']) . "</td>\n <td><input type=\"text\" name=\"spellcategory_3\" size=\"6\" maxlength=\"30\" value=\"{$item['spellcategory_3']}\" /></td>\n\n <td>" . makeinfocell($lang_item_edit['spell_category_cooldown'], $lang_item_edit['spell_category_cooldown_desc']) . "</td>\n <td><input type=\"text\" name=\"spellcategorycooldown_3\" size=\"6\" maxlength=\"30\" value=\"{$item['spellcategorycooldown_3']}\" /></td>\n\n <td>" . makeinfocell($lang_item_edit['ppm_rate'], $lang_item_edit['ppm_rate_desc']) . "</td>\n <td><input type=\"text\" name=\"spellppmRate_3\" size=\"6\" maxlength=\"30\" value=\"{$item['spellppmRate_3']}\" /></td>\n</tr>\n<tr><td colspan=\"6\" class=\"hidden\"></td></tr>\n<tr>\n <td colspan=\"2\">{$lang_item_edit['item_spell']} 4</td>\n <td>" . makeinfocell($lang_item_edit['spell_id'], $lang_item_edit['spell_id_desc']) . "</td>\n <td><input type=\"text\" name=\"spellid_4\" size=\"6\" maxlength=\"30\" value=\"{$item['spellid_4']}\" /></td>"; unset($spelltrigger_3); $spelltrigger_4 = array(0 => "", 1 => "", 2 => "", 4 => ""); $spelltrigger_4[$item['spelltrigger_4']] = " selected=\"selected\" "; $output .= "<td>" . makeinfocell($lang_item_edit['spell_trigger'], $lang_item_edit['spell_trigger_desc']) . "</td>\n <td><select name=\"spelltrigger_4\">\n <option value=\"0\" {$spelltrigger_4[0]}>0: {$lang_item['spell_use']}</option>\n <option value=\"1\" {$spelltrigger_4[1]}>1: {$lang_item['spell_equip']}</option>\n <option value=\"2\" {$spelltrigger_4[2]}>2: {$lang_item['spell_coh']}</option>\n <option value=\"4\" {$spelltrigger_4[4]}>4: {$lang_item['soul_stone']}</option>\n </select></td>\n <td>" . makeinfocell($lang_item_edit['spell_charges'], $lang_item_edit['spell_charges_desc']) . "</td>\n <td><input type=\"text\" name=\"spellcharges_4\" size=\"6\" maxlength=\"30\" value=\"{$item['spellcharges_4']}\" /></td>\n</tr>\n<tr>\n <td>" . makeinfocell($lang_item_edit['spell_cooldown'], $lang_item_edit['spell_cooldown_desc']) . "</td>\n <td><input type=\"text\" name=\"spellcooldown_4\" size=\"6\" maxlength=\"30\" value=\"{$item['spellcooldown_4']}\" /></td>\n\n <td>" . makeinfocell($lang_item_edit['spell_category'], $lang_item_edit['spell_category_desc']) . "</td>\n <td><input type=\"text\" name=\"spellcategory_4\" size=\"6\" maxlength=\"30\" value=\"{$item['spellcategory_4']}\" /></td>\n\n <td>" . makeinfocell($lang_item_edit['spell_category_cooldown'], $lang_item_edit['spell_category_cooldown_desc']) . "</td>\n <td><input type=\"text\" name=\"spellcategorycooldown_4\" size=\"6\" maxlength=\"30\" value=\"{$item['spellcategorycooldown_4']}\" /></td>\n\n <td>" . makeinfocell($lang_item_edit['ppm_rate'], $lang_item_edit['ppm_rate_desc']) . "</td>\n <td><input type=\"text\" name=\"spellppmRate_4\" size=\"6\" maxlength=\"30\" value=\"{$item['spellppmRate_4']}\" /></td>\n</tr>\n<tr><td colspan=\"6\" class=\"hidden\"></td></tr>\n<tr>\n <td colspan=\"2\">{$lang_item_edit['item_spell']} 5</td>\n <td>" . makeinfocell($lang_item_edit['spell_id'], $lang_item_edit['spell_id_desc']) . "</td>\n <td><input type=\"text\" name=\"spellid_5\" size=\"6\" maxlength=\"30\" value=\"{$item['spellid_5']}\" /></td>"; unset($spelltrigger_4); $spelltrigger_5 = array(0 => "", 1 => "", 2 => "", 4 => ""); $spelltrigger_5[$item['spelltrigger_5']] = " selected=\"selected\" "; $output .= "<td>" . makeinfocell($lang_item_edit['spell_trigger'], $lang_item_edit['spell_trigger_desc']) . "</td>\n <td><select name=\"spelltrigger_5\">\n <option value=\"0\" {$spelltrigger_5[0]}>0: {$lang_item['spell_use']}</option>\n <option value=\"1\" {$spelltrigger_5[1]}>1: {$lang_item['spell_equip']}</option>\n <option value=\"2\" {$spelltrigger_5[2]}>2: {$lang_item['spell_coh']}</option>\n <option value=\"4\" {$spelltrigger_5[4]}>4: {$lang_item['soul_stone']}</option>\n </select></td>\n <td>" . makeinfocell($lang_item_edit['spell_charges'], $lang_item_edit['spell_charges_desc']) . "</td>\n <td><input type=\"text\" name=\"spellcharges_5\" size=\"6\" maxlength=\"30\" value=\"{$item['spellcharges_5']}\" /></td>\n</tr>\n<tr>\n <td>" . makeinfocell($lang_item_edit['spell_cooldown'], $lang_item_edit['spell_cooldown_desc']) . "</td>\n <td><input type=\"text\" name=\"spellcooldown_5\" size=\"6\" maxlength=\"30\" value=\"{$item['spellcooldown_5']}\" /></td>\n\n <td>" . makeinfocell($lang_item_edit['spell_category'], $lang_item_edit['spell_category_desc']) . "</td>\n <td><input type=\"text\" name=\"spellcategory_5\" size=\"6\" maxlength=\"30\" value=\"{$item['spellcategory_5']}\" /></td>\n\n <td>" . makeinfocell($lang_item_edit['spell_category_cooldown'], $lang_item_edit['spell_category_cooldown_desc']) . "</td>\n <td><input type=\"text\" name=\"spellcategorycooldown_5\" size=\"6\" maxlength=\"30\" value=\"{$item['spellcategorycooldown_5']}\" /></td>\n\n <td>" . makeinfocell($lang_item_edit['ppm_rate'], $lang_item_edit['ppm_rate_desc']) . "</td>\n <td><input type=\"text\" name=\"spellppmRate_5\" size=\"6\" maxlength=\"30\" value=\"{$item['spellppmRate_5']}\" /></td>\n</tr>\n\n</table>\n </div>"; unset($spelltrigger_5); $output .= "<div id=\"pane6\">\n <br /><br /><table class=\"lined\" style=\"width: 720px;\">\n <tr>"; $AllowableClass = array(-1 => "", 1 => "", 2 => "", 4 => "", 8 => "", 16 => "", 32 => "", 64 => "", 128 => "", 256 => "", 512 => "", 1024 => ""); if ($item['AllowableClass'] == -1) { $AllowableClass[-1] = " selected=\"selected\" "; } else { if ($item['AllowableClass'] & 1) { $AllowableClass[1] = " selected=\"selected\" "; } if ($item['AllowableClass'] & 2) { $AllowableClass[2] = " selected=\"selected\" "; } if ($item['AllowableClass'] & 4) { $AllowableClass[4] = " selected=\"selected\" "; } if ($item['AllowableClass'] & 8) { $AllowableClass[8] = " selected=\"selected\" "; } if ($item['AllowableClass'] & 16) { $AllowableClass[16] = " selected=\"selected\" "; } if ($item['AllowableClass'] & 32) { $AllowableClass[32] = " selected=\"selected\" "; } if ($item['AllowableClass'] & 64) { $AllowableClass[64] = " selected=\"selected\" "; } if ($item['AllowableClass'] & 128) { $AllowableClass[128] = " selected=\"selected\" "; } if ($item['AllowableClass'] & 256) { $AllowableClass[256] = " selected=\"selected\" "; } if ($item['AllowableClass'] & 512) { $AllowableClass[512] = " selected=\"selected\" "; } if ($item['AllowableClass'] & 1024) { $AllowableClass[1024] = " selected=\"selected\" "; } } $output .= "<td>" . makeinfocell($lang_item_edit['allow_class'], $lang_item_edit['allow_class_desc']) . "</td>\n <td><select multiple=\"multiple\" name=\"AllowableClass[]\" size=\"5\">\n <option value=\"-1\" {$AllowableClass[-1]}>-1 - {$lang_item_edit['all']}</option>\n <option value=\"1\" {$AllowableClass[1]}>1 - {$lang_id_tab['warrior']}</option>\n <option value=\"2\" {$AllowableClass[2]}>2 - {$lang_id_tab['paladin']}</option>\n <option value=\"4\" {$AllowableClass[4]}>4 - {$lang_id_tab['hunter']}</option>\n <option value=\"8\" {$AllowableClass[8]}>8 - {$lang_id_tab['rogue']}</option>\n <option value=\"16\" {$AllowableClass[16]}>16 - {$lang_id_tab['priest']}</option>\n <option value=\"32\" {$AllowableClass[32]}>32 - FUTURE_1</option>\n <option value=\"64\" {$AllowableClass[64]}>64 - {$lang_id_tab['shaman']}</option>\n <option value=\"128\" {$AllowableClass[128]}>128 - {$lang_id_tab['mage']}</option>\n <option value=\"256\" {$AllowableClass[256]}>256 - {$lang_id_tab['warlock']}</option>\n <option value=\"512\" {$AllowableClass[512]}>512 - FUTURE_2</option>\n <option value=\"1024\" {$AllowableClass[1024]}>1024 - {$lang_id_tab['druid']}</option>\n </select></td>"; unset($AllowableClass); $AllowableRace = array(-1 => "", 1 => "", 2 => "", 4 => "", 8 => "", 16 => "", 32 => "", 64 => "", 128 => "", 256 => "", 512 => ""); if ($item['AllowableRace'] == -1) { $AllowableRace[-1] = " selected=\"selected\" "; } else { if ($item['AllowableRace'] & 1) { $AllowableRace[1] = " selected=\"selected\" "; } if ($item['AllowableRace'] & 2) { $AllowableRace[2] = " selected=\"selected\" "; } if ($item['AllowableRace'] & 4) { $AllowableRace[4] = " selected=\"selected\" "; } if ($item['AllowableRace'] & 8) { $AllowableRace[8] = " selected=\"selected\" "; } if ($item['AllowableRace'] & 16) { $AllowableRace[16] = " selected=\"selected\" "; } if ($item['AllowableRace'] & 32) { $AllowableRace[32] = " selected=\"selected\" "; } if ($item['AllowableRace'] & 64) { $AllowableRace[64] = " selected=\"selected\" "; } if ($item['AllowableRace'] & 128) { $AllowableRace[128] = " selected=\"selected\" "; } if ($item['AllowableRace'] & 256) { $AllowableRace[256] = " selected=\"selected\" "; } if ($item['AllowableRace'] & 512) { $AllowableRace[512] = " selected=\"selected\" "; } } $output .= "<td>" . makeinfocell($lang_item_edit['allow_race'], $lang_item_edit['allow_race_desc']) . "</td>\n <td><select multiple=\"multiple\" name=\"AllowableRace[]\" size=\"5\">\n <option value=\"-1\" {$AllowableRace[-1]}>-1 - {$lang_item_edit['all']}</option>\n <option value=\"1\" {$AllowableRace[1]}>1 - {$lang_id_tab['human']}</option>\n <option value=\"2\" {$AllowableRace[2]}>2 - {$lang_id_tab['orc']}</option>\n <option value=\"4\" {$AllowableRace[4]}>4 - {$lang_id_tab['dwarf']}</option>\n <option value=\"8\" {$AllowableRace[8]}>8 - {$lang_id_tab['nightelf']}</option>\n <option value=\"16\" {$AllowableRace[16]}>16 - {$lang_id_tab['undead']}</option>\n <option value=\"32\" {$AllowableRace[32]}>32 - {$lang_id_tab['tauren']}</option>\n <option value=\"64\" {$AllowableRace[64]}>64 - {$lang_id_tab['gnome']}</option>\n <option value=\"128\" {$AllowableRace[128]}>128 - {$lang_id_tab['troll']}</option>\n <option value=\"256\" {$AllowableRace[256]}>256 - {$lang_id_tab['draenei']}</option>\n <option value=\"512\" {$AllowableRace[512]}>512 - {$lang_id_tab['bloodelf']}</option>\n </select></td>\n</tr>\n<tr>\n <td>" . makeinfocell($lang_item_edit['req_skill'], $lang_item_edit['req_skill_desc']) . "</td>\n <td><input type=\"text\" name=\"RequiredSkill\" size=\"15\" maxlength=\"30\" value=\"{$item['RequiredSkill']}\" /></td>\n\n <td>" . makeinfocell($lang_item_edit['req_skill_rank'], $lang_item_edit['req_skill_rank_desc']) . "</td>\n <td><input type=\"text\" name=\"RequiredSkillRank\" size=\"15\" maxlength=\"30\" value=\"{$item['RequiredSkillRank']}\" /></td>\n</tr>\n<tr>\n <td>" . makeinfocell($lang_item_edit['req_spell'], $lang_item_edit['req_spell_desc']) . "</td>\n <td><input type=\"text\" name=\"requiredspell\" size=\"15\" maxlength=\"30\" value=\"{$item['requiredspell']}\" /></td>\n\n <td>" . makeinfocell($lang_item_edit['req_honor_rank'], $lang_item_edit['req_honor_rank_desc']) . "</td>\n <td><input type=\"text\" name=\"requiredhonorrank\" size=\"15\" maxlength=\"30\" value=\"{$item['requiredhonorrank']}\" /></td>\n</tr>\n<tr>\n <td>" . makeinfocell($lang_item_edit['req_rep_faction'], $lang_item_edit['req_rep_faction_desc']) . "</td>\n <td><input type=\"text\" name=\"RequiredReputationFaction\" size=\"15\" maxlength=\"30\" value=\"{$item['RequiredReputationFaction']}\" /></td>"; unset($AllowableRace); $RequiredReputationRank = array(0 => "", 1 => "", 2 => "", 3 => "", 4 => "", 5 => "", 6 => "", 7 => ""); $RequiredReputationRank[$item['RequiredReputationRank']] = " selected=\"selected\" "; $output .= "<td>" . makeinfocell($lang_item_edit['req_rep_rank'], $lang_item_edit['req_rep_rank_desc']) . "</td>\n <td><select name=\"RequiredReputationRank\">\n <option value=\"0\" {$RequiredReputationRank[0]}>0 - {$lang_item_edit['hated']}</option>\n <option value=\"1\" {$RequiredReputationRank[1]}>1 - {$lang_item_edit['hostile']}</option>\n <option value=\"2\" {$RequiredReputationRank[2]}>2 - {$lang_item_edit['unfriendly']}</option>\n <option value=\"3\" {$RequiredReputationRank[3]}>3 - {$lang_item_edit['neutral']}</option>\n <option value=\"4\" {$RequiredReputationRank[4]}>4 - {$lang_item_edit['friendly']}</option>\n <option value=\"5\" {$RequiredReputationRank[5]}>5 - {$lang_item_edit['honored']}</option>\n <option value=\"6\" {$RequiredReputationRank[6]}>6 - {$lang_item_edit['reverted']}</option>\n <option value=\"7\" {$RequiredReputationRank[7]}>7 - {$lang_item_edit['exalted']}</option>\n </select></td>\n</tr>\n<tr>\n <td colspan=\"2\">" . makeinfocell($lang_item_edit['req_city_rank'], $lang_item_edit['req_city_rank_desc']) . "</td>\n <td colspan=\"2\"><input type=\"text\" name=\"RequiredCityRank\" size=\"15\" maxlength=\"30\" value=\"{$item['RequiredCityRank']}\" /></td>\n</tr>\n\n </table><br /><br />\n </div>"; unset($RequiredReputationRank); $output .= "<div id=\"pane7\">\n <br /><br /><table class=\"lined\" style=\"width: 720px;\">\n<tr>"; $socketColor_1 = array(0 => "", 1 => "", 2 => "", 4 => "", 8 => ""); $socketColor_1[$item['socketColor_1']] = " selected=\"selected\" "; $output .= "<td>" . makeinfocell($lang_item_edit['socket_color'] . " 1", $lang_item_edit['socket_color_desc']) . "</td>\n <td><select name=\"socketColor_1\">\n <option value=\"0\" {$socketColor_1[0]}>0: {$lang_item['none']}</option>\n <option value=\"1\" {$socketColor_1[1]}>1: {$lang_item['socket_meta']}</option>\n <option value=\"2\" {$socketColor_1[2]}>2: {$lang_item['socket_red']}</option>\n <option value=\"4\" {$socketColor_1[4]}>4: {$lang_item['socket_yellow']}</option>\n <option value=\"8\" {$socketColor_1[8]}>8: {$lang_item['socket_blue']}</option>\n </select></td>\n <td>" . makeinfocell($lang_item_edit['socket_content'] . " 1", $lang_item_edit['socket_content_desc']) . "</td>\n <td><input type=\"text\" name=\"socketContent_1\" size=\"15\" maxlength=\"10\" value=\"{$item['socketContent_1']}\" /></td>\n</tr>\n<tr>"; unset($socketColor_1); $socketColor_2 = array(0 => "", 1 => "", 2 => "", 4 => "", 8 => ""); $socketColor_2[$item['socketColor_2']] = " selected=\"selected\" "; $output .= "<td>" . makeinfocell($lang_item_edit['socket_color'] . " 2", $lang_item_edit['socket_color_desc']) . "</td>\n <td><select name=\"socketColor_2\">\n <option value=\"0\" {$socketColor_2[0]}>0: {$lang_item['none']}</option>\n <option value=\"1\" {$socketColor_2[1]}>1: {$lang_item['socket_meta']}</option>\n <option value=\"2\" {$socketColor_2[2]}>2: {$lang_item['socket_red']}</option>\n <option value=\"4\" {$socketColor_2[4]}>4: {$lang_item['socket_yellow']}</option>\n <option value=\"8\" {$socketColor_2[8]}>8: {$lang_item['socket_blue']}</option>\n </select></td>\n\n <td>" . makeinfocell($lang_item_edit['socket_content'] . " 2", $lang_item_edit['socket_content_desc']) . "</td>\n <td><input type=\"text\" name=\"socketContent_2\" size=\"15\" maxlength=\"10\" value=\"{$item['socketContent_2']}\" /></td>\n</tr>\n<tr>"; unset($socketColor_2); $socketColor_3 = array(0 => "", 1 => "", 2 => "", 4 => "", 8 => ""); $socketColor_3[$item['socketColor_3']] = " selected=\"selected\" "; $output .= "<td>" . makeinfocell($lang_item_edit['socket_color'] . " 3", $lang_item_edit['socket_color_desc']) . "</td>\n <td><select name=\"socketColor_3\">\n <option value=\"0\" {$socketColor_3[0]}>0: {$lang_item['none']}</option>\n <option value=\"1\" {$socketColor_3[1]}>1: {$lang_item['socket_meta']}</option>\n <option value=\"2\" {$socketColor_3[2]}>2: {$lang_item['socket_red']}</option>\n <option value=\"4\" {$socketColor_3[4]}>4: {$lang_item['socket_yellow']}</option>\n <option value=\"8\" {$socketColor_3[8]}>8: {$lang_item['socket_blue']}</option>\n </select></td>\n\n <td>" . makeinfocell($lang_item_edit['socket_content'] . " 3", $lang_item_edit['socket_content_desc']) . "</td>\n <td><input type=\"text\" name=\"socketContent_3\" size=\"15\" maxlength=\"10\" value=\"{$item['socketContent_3']}\" /></td>\n</tr>\n\n<tr>\n <td>" . makeinfocell($lang_item_edit['socket_bonus'], $lang_item_edit['socket_bonus_desc']) . "</td>\n <td><input type=\"text\" name=\"socketBonus\" size=\"15\" maxlength=\"10\" value=\"{$item['socketBonus']}\" /></td>\n\n <td>" . makeinfocell($lang_item_edit['gem_properties'], $lang_item_edit['gem_properties_desc']) . "</td>\n <td><input type=\"text\" name=\"GemProperties\" size=\"15\" maxlength=\"10\" value=\"{$item['GemProperties']}\" /></td>\n</tr>\n\n </table><br /><br />\n </div>"; $output .= "<div id=\"pane8\">\n <br /><br /><table class=\"lined\" style=\"width: 720px;\">\n <tr class=\"large_bold\"><td colspan=\"5\" class=\"hidden\" align=\"left\">{$lang_item_edit['dropped_by']}: {$lang_item_edit['top_x']}</td></tr>\n <tr>\n <th width=\"1%\">ID</th>\n <th width=\"35%\">{$lang_item_edit['mob_name']}</th>\n <th width=\"10%\">{$lang_item_edit['mob_level']}</th>\n <th width=\"25%\">{$lang_item_edit['mob_drop_chance']}</th>\n <th width=\"25%\">{$lang_item_edit['mob_quest_drop_chance']}</th>\n </tr>"; $result2 = $sql->query("SELECT entry,ChanceOrQuestChance,`groupid` FROM creature_loot_template WHERE item = {$item['entry']} ORDER BY `groupid`,ChanceOrQuestChance DESC LIMIT 5"); while ($info = $sql->fetch_row($result2)) { $result3 = $sql->query("SELECT creature_template.entry,IFNULL(" . ($deplang != 0 ? "name_loc{$deplang}" : "NULL") . ",`name`) as name,maxlevel FROM creature_template LEFT JOIN locales_creature ON creature_template.entry = locales_creature.entry WHERE lootid = {$info[0]} LIMIT 1"); while ($mob = $sql->fetch_row($result3)) { $output .= "<tr><td>"; if ($user_lvl >= $action_permission['delete']) { $output .= "<a class=\"tooltip\" href=\"creature.php?action=edit&entry={$mob['0']}&error=4\" target=\"_blank\">{$mob['0']}</a>"; } else { $output .= "{$mob['0']}"; } $output .= "</td>\n <td><a class=\"tooltip\" href=\"{$creature_datasite}{$mob['0']}\" target=\"_blank\">{$mob['1']}</a></td>\n <td>{$mob['2']}</td>\n <td>{$info['1']}%</td>\n <td>{$info['2']}%</td></tr>"; } } $result2 = $sql->query("SELECT creature_template.entry,IFNULL(" . ($deplang != 0 ? "name_loc{$deplang}" : "NULL") . ",`name`) as name,maxlevel FROM creature_template LEFT JOIN locales_creature ON creature_template.entry = locales_creature.entry WHERE creature_template.entry IN (SELECT entry FROM npc_vendor WHERE item = {$item['entry']}) ORDER BY maxlevel DESC LIMIT 5"); if ($sql->num_rows($result2)) { $output .= "<tr class=\"large_bold\"><td colspan=\"4\" class=\"hidden\" align=\"left\">{$lang_item_edit['sold_by']}: {$lang_item_edit['limit_x']}</td></tr>"; while ($mob = $sql->fetch_row($result2)) { $output .= "<tr>\n <td width=\"10%\">"; if ($user_lvl >= $action_permission['delete']) { $output .= "<a class=\"tooltip\" href=\"creature.php?action=edit&entry={$mob['0']}&error=4\" target=\"_blank\">{$mob['0']}</a>"; } else { $output .= "{$mob['0']}"; } $output .= "\n <td width=\"10%\">{$mob['2']}</td>\n <td width=\"80%\" colspan=\"2\" align=\"left\">\n <a class=\"tooltip\" href=\"{$creature_datasite}{$mob['0']}\" target=\"_blank\">{$mob['1']}</a></td>\n </td></tr>"; } } $result2 = $sql->query("SELECT quest_template.entry,IFNULL(" . ($deplang != 0 ? "title_loc{$deplang}" : "NULL") . ",`title`) as title,QuestLevel FROM quest_template LEFT JOIN locales_quest ON quest_template.entry = locales_quest.entry WHERE ( SrcItemId = {$item['entry']} OR ReqItemId1 = {$item['entry']} OR\n ReqItemId2 = {$item['entry']} OR ReqItemId3 = {$item['entry']} OR ReqItemId4 = {$item['entry']} OR RewItemId1 = {$item['entry']} OR\n RewItemId2 = {$item['entry']} OR RewItemId3 = {$item['entry']} OR RewItemId4 = {$item['entry']} ) ORDER BY QuestLevel DESC"); if ($sql->num_rows($result2)) { $output .= "<tr class=\"large_bold\"><td colspan=\"4\" class=\"hidden\" align=\"left\">{$lang_item_edit['involved_in_quests']}:</td></tr>"; while ($quest = $sql->fetch_row($result2)) { $output .= "<tr><td width=\"20%\">id: {$quest['0']}</td>\n <td width=\"80%\" colspan=\"3\" align=\"left\"><a class=\"tooltip\" href=\"{$quest_datasite}{$quest['0']}\" target=\"_blank\">({$quest['2']}) {$quest['1']}</a></td></tr>"; } } $result2 = $sql->query("SELECT quest_template.entry,IFNULL(" . ($deplang != 0 ? "title_loc{$deplang}" : "NULL") . ",`title`) as title,QuestLevel FROM quest_template LEFT JOIN locales_quest ON quest_template.entry = locales_quest.entry WHERE ( RewChoiceItemId1 = {$item['entry']} OR RewChoiceItemId2 = {$item['entry']} OR\n RewChoiceItemId3 = {$item['entry']} OR RewChoiceItemId4 = {$item['entry']} OR RewChoiceItemId5 = {$item['entry']} OR RewChoiceItemId6 = {$item['entry']} )\n ORDER BY QuestLevel DESC"); if ($sql->num_rows($result2)) { $output .= "<tr class=\"large_bold\"><td colspan=\"4\" class=\"hidden\" align=\"left\">{$lang_item_edit['reward_from_quest']}:</td></tr>"; while ($quest = $sql->fetch_row($result2)) { $output .= "<tr><td width=\"20%\">id: {$quest['0']}</td>\n <td width=\"80%\" colspan=\"3\" align=\"left\"><a class=\"tooltip\" href=\"{$quest_datasite}{$quest['0']}\" target=\"_blank\">({$quest['2']}) {$quest['1']}</a></td></tr>"; } } $output .= "</tr></table><br /><br />\n </div>"; if ($item['DisenchantID']) { $output .= "<div id=\"pane9\">\n <br /><br /><table class=\"lined\" style=\"width: 720px;\">\n <tr class=\"large_bold\"><td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_item_edit['disenchant_templ']}: {$item['DisenchantID']}</td></tr>\n <tr><td colspan=\"6\">"; $cel_counter = 0; $row_flag = 0; $output .= "<table class=\"hidden\" align=\"center\"><tr>"; $result1 = $sql->query("SELECT item,ChanceOrQuestChance,`groupid`,mincountOrRef,maxcount,lootcondition,condition_value1, condition_value2 FROM disenchant_loot_template WHERE entry = {$item['DisenchantID']} ORDER BY ChanceOrQuestChance DESC"); while ($item = $sql->fetch_row($result1)) { $cel_counter++; $tooltip = get_item_name($item[0]) . " ({$item['0']})<br />{$lang_item_edit['drop_chance']}: {$item['1']}%<br />{$lang_item_edit['quest_drop_chance']}: {$item['2']}%<br />{$lang_item_edit['drop_chance']}: {$item['3']}-{$item['4']}<br />{$lang_item_edit['lootcondition']}: {$item['5']}<br />{$lang_item_edit['condition_value1']}: {$item['6']}<br />{$lang_item_edit['condition_value2']}: {$item['7']}"; $output .= "<td>"; $output .= maketooltip("<img src=\"" . get_item_icon($item[0]) . "\" class=\"icon_border\" alt=\"\" />", "{$item_datasite}{$item['0']}", $tooltip, "item_tooltip"); $output .= "<br /><input type=\"checkbox\" name=\"del_de_items[]\" value=\"{$item['0']}\" /></td>"; if ($cel_counter >= 16) { $cel_counter = 0; $output .= "</tr><tr>"; $row_flag++; } } if ($row_flag) { $output .= "<td colspan=\"" . (16 - $cel_counter) . "\"></td>"; } $output .= "</td></tr></table>\n </td>\n</tr>\n<tr class=\"large_bold\"><td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_item_edit['add_items_to_templ']}:</td></tr>\n<tr>\n<td>" . makeinfocell($lang_item_edit['loot_item_id'], $lang_item_edit['loot_item_id_desc']) . "</td>\n <td><input type=\"text\" name=\"de_item\" size=\"8\" maxlength=\"10\" value=\"\" /></td>\n<td>" . makeinfocell($lang_item_edit['loot_drop_chance'], $lang_item_edit['loot_drop_chance_desc']) . "</td>\n <td><input type=\"text\" name=\"de_ChanceOrQuestChance\" size=\"8\" maxlength=\"11\" value=\"0\" /></td>\n<td>" . makeinfocell($lang_item_edit['loot_quest_drop_chance'], $lang_item_edit['loot_quest_drop_chance_desc']) . "</td>\n <td><input type=\"text\" name=\"de_groupid\" size=\"8\" maxlength=\"10\" value=\"0\" /></td>\n</tr>\n<tr>\n<td>" . makeinfocell($lang_item_edit['min_count'], $lang_item_edit['min_count_desc']) . "</td>\n <td><input type=\"text\" name=\"de_mincountOrRef\" size=\"8\" maxlength=\"3\" value=\"1\" /></td>\n<td>" . makeinfocell($lang_item_edit['max_count'], $lang_item_edit['max_count_desc']) . "</td>\n <td><input type=\"text\" name=\"de_maxcount\" size=\"8\" maxlength=\"3\" value=\"1\" /></td>\n</tr>\n<tr>\n<td>" . makeinfocell($lang_item_edit['lootcondition'], $lang_item_edit['lootcondition_desc']) . "</td>\n <td><input type=\"text\" name=\"de_lootcondition\" size=\"8\" maxlength=\"3\" value=\"0\" /></td>\n<td>" . makeinfocell($lang_item_edit['condition_value1'], $lang_item_edit['condition_value1_desc']) . "</td>\n <td><input type=\"text\" name=\"de_condition_value1\" size=\"8\" maxlength=\"3\" value=\"0\" /></td>\n<td>" . makeinfocell($lang_item_edit['condition_value2'], $lang_item_edit['condition_value2_desc']) . "</td>\n <td><input type=\"text\" name=\"de_condition_value2\" size=\"8\" maxlength=\"3\" value=\"0\" /></td>\n</tr>\n</table>\n</div>"; } $output .= "</div>\n</div>\n<br />\n</form>\n\n<script type=\"text/javascript\">setupPanes(\"container\", \"tab1\")</script>"; unset($socketColor_3); $output .= "\n <table class=\"hidden\">\n <tr>\n <td>"; if ($user_lvl >= $action_permission['delete']) { makebutton($lang_item_edit['del_item'], "item.php?action=delete&entry={$entry}\" type=\"wrn", 180); } $output .= "\n </td>\n <td>"; if ($user_lvl >= $action_permission['update']) { makebutton($lang_item_edit['update'], "javascript:do_submit('form1',0)\" type=\"wrn", 180); } $output .= "\n </td>\n <td>"; if ($user_lvl >= $action_permission['insert']) { makebutton($lang_item_edit['export_sql'], "javascript:do_submit('form1',1)", 180); } $output .= "\n </td>\n <td>"; makebutton($lang_global['back'], "javascript:window.history.back()", 130); $output .= "\n </td>\n <td>"; makebutton($lang_item_edit['new_search'], "item.php", 130); $output .= "\n </td>\n </tr>\n </table>\n </center>\n"; } else { error($lang_item_edit['item_not_found']); exit; } }
function edit() { global $lang_global, $lang_game_object, $output, $world_db, $realm_id, $item_datasite, $go_datasite, $go_type, $quest_datasite; wowhead_tt(); if (!isset($_GET['entry'])) { redirect("game_object.php?error=1"); } $sql = new SQL(); $sql->connect($world_db[$realm_id]['addr'], $world_db[$realm_id]['user'], $world_db[$realm_id]['pass'], $world_db[$realm_id]['name']); $entry = $sql->quote_smart($_GET['entry']); require_once "./scripts/get_lib.php"; $deplang = get_lang_id(); $result = $sql->query("SELECT gameobject_template.`entry`,`type`,`displayId`,IFNULL(" . ($deplang != 0 ? "name_loc{$deplang}" : "NULL") . ",`name`) as name,`faction`,`flags`,`size`,`data0`,`data1`,`data2`,`data3`,`data4`,`data5`,`data6`,`data7`,`data8`,`data9`,`data10`,`data11`,`data12`,`data13`,`data14`,`data15`,`data16`,`data17`,`data18`,`data19`,`data20`,`data21`,`data22`,`data23`,`ScriptName` FROM gameobject_template LEFT JOIN locales_gameobject ON gameobject_template.entry = locales_gameobject.entry WHERE gameobject_template.entry = '{$entry}'"); if ($go = $sql->fetch_assoc($result)) { $output .= "<script type=\"text/javascript\" src=\"libs/js/tab.js\"></script>\r\n <center>\r\n <br /><br /><br />\r\n <form method=\"post\" action=\"game_object.php?action=do_update\" name=\"form1\">\r\n <input type=\"hidden\" name=\"backup_op\" value=\"0\"/>\r\n <input type=\"hidden\" name=\"opp_type\" value=\"edit\"/>\r\n <input type=\"hidden\" name=\"entry\" value=\"{$entry}\"/>\r\n\r\n<div class=\"jtab-container\" id=\"container\">\r\n <ul class=\"jtabs\">\r\n <li><a href=\"#\" onclick=\"return showPane('pane1', this)\" id=\"tab1\">{$lang_game_object['general']}</a></li>\r\n <li><a href=\"#\" onclick=\"return showPane('pane2', this)\">{$lang_game_object['datas']}</a></li>"; if ($go['type'] == 3) { $output .= "<li><a href=\"#\" onclick=\"return showPane('pane3', this)\">{$lang_game_object['loot']}</a></li>"; } $output .= "<li><a href=\"#\" onclick=\"return showPane('pane4', this)\">{$lang_game_object['quests']}</a></li>\r\n </ul>\r\n <div class=\"jtab-panes\">"; $output .= "<div id=\"pane1\"><br /><br />\r\n<table class=\"lined\" style=\"width: 720px;\">\r\n<tr class=\"large_bold\"><td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_game_object['general']}:</td></tr>\r\n<tr>\r\n <td>" . makeinfocell($lang_game_object['entry'], $lang_game_object['entry_desc']) . "</td>\r\n <td><a href=\"{$go_datasite}{$go['entry']}\" target=\"_blank\">{$go['entry']}</a></td>\r\n\r\n <td>" . makeinfocell($lang_game_object['name'], $lang_game_object['name_desc']) . "</td>\r\n <td ><input type=\"text\" name=\"name\" size=\"25\" maxlength=\"100\" value=\"{$go['name']}\" /></td>\r\n\r\n <td>" . makeinfocell($lang_game_object['faction'], $lang_game_object['faction_desc']) . "</td>\r\n <td><input type=\"text\" name=\"faction\" size=\"10\" maxlength=\"4\" value=\"{$go['faction']}\" /></td>\r\n</tr>\r\n<tr>\r\n <td>" . makeinfocell($lang_game_object['type'], $lang_game_object['type_desc']) . "</td>\r\n <td colspan=\"3\"><select name=\"type\">"; foreach ($go_type as $type) { $output .= "<option value=\"{$type['0']}\" "; if ($type[0] == $go['type']) { $output .= "selected=\"selected\" "; } $output .= ">({$type['0']}) {$type['1']}</option>"; } $output .= "</select></td>\r\n <td>" . makeinfocell($lang_game_object['displayId'], $lang_game_object['displayId_desc']) . "</td>\r\n <td><input type=\"text\" name=\"displayId\" size=\"10\" maxlength=\"11\" value=\"{$go['displayId']}\" /></td>\r\n\r\n</tr>\r\n<tr>\r\n <td>" . makeinfocell($lang_game_object['flags'], $lang_game_object['flags_desc']) . "</td>\r\n <td><input type=\"text\" name=\"flags\" size=\"10\" maxlength=\"4\" value=\"{$go['flags']}\" /></td>\r\n\r\n <td>" . makeinfocell($lang_game_object['size'], $lang_game_object['size_desc']) . "</td>\r\n <td><input type=\"text\" name=\"size\" size=\"10\" maxlength=\"25\" value=\"{$go['size']}\" /></td>\r\n\r\n <td>" . makeinfocell($lang_game_object['script_name'], $lang_game_object['ScriptName_desc']) . "</td>\r\n <td><input type=\"text\" name=\"ScriptName\" size=\"10\" maxlength=\"100\" value=\"{$go['ScriptName']}\" /></td>\r\n</tr>\r\n\r\n<tr class=\"large_bold\"><td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_game_object['data']}:</td></tr>\r\n<tr>\r\n <td>" . makeinfocell($lang_game_object['data'] . " 0", $lang_game_object['data_desc']) . "</td>\r\n <td><input type=\"text\" name=\"data0\" size=\"10\" maxlength=\"11\" value=\"{$go['data0']}\" /></td>\r\n\r\n <td>" . makeinfocell($lang_game_object['data'] . " 1", $lang_game_object['data_desc']) . "</td>\r\n <td><input type=\"text\" name=\"data1\" size=\"10\" maxlength=\"11\" value=\"{$go['data1']}\" /></td>\r\n\r\n <td>" . makeinfocell($lang_game_object['data'] . " 2", $lang_game_object['data_desc']) . "</td>\r\n <td><input type=\"text\" name=\"data2\" size=\"10\" maxlength=\"11\" value=\"{$go['data2']}\" /></td>\r\n</tr>\r\n<tr>\r\n <td>" . makeinfocell($lang_game_object['data'] . " 3", $lang_game_object['data_desc']) . "</td>\r\n <td><input type=\"text\" name=\"data3\" size=\"10\" maxlength=\"11\" value=\"{$go['data3']}\" /></td>\r\n\r\n <td>" . makeinfocell($lang_game_object['data'] . " 4", $lang_game_object['data_desc']) . "</td>\r\n <td><input type=\"text\" name=\"data4\" size=\"10\" maxlength=\"11\" value=\"{$go['data4']}\" /></td>\r\n\r\n <td>" . makeinfocell($lang_game_object['data'] . " 5", $lang_game_object['data_desc']) . "</td>\r\n <td><input type=\"text\" name=\"data5\" size=\"10\" maxlength=\"11\" value=\"{$go['data5']}\" /></td>\r\n</tr>\r\n</table><br />"; $result1 = $sql->query("SELECT COUNT(*) FROM gameobject WHERE id = '{$go['entry']}'"); $output .= "<tr><td colspan=\"6\">{$lang_game_object['go_swapned']} : " . $sql->result($result1, 0) . " {$lang_game_object['times']}.</td></tr>\r\n\r\n<br />\r\n</div>\r\n\r\n<div id=\"pane2\">\r\n <br /><br /><table class=\"lined\" style=\"width: 720px;\">\r\n\r\n<tr class=\"large_bold\"><td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_game_object['data']}:</td></tr>\r\n<tr>\r\n <td>" . makeinfocell($lang_game_object['data'] . " 6", $lang_game_object['data_desc']) . "</td>\r\n <td><input type=\"text\" name=\"data6\" size=\"10\" maxlength=\"11\" value=\"{$go['data6']}\" /></td>\r\n\r\n <td>" . makeinfocell($lang_game_object['data'] . " 7", $lang_game_object['data_desc']) . "</td>\r\n <td><input type=\"text\" name=\"data7\" size=\"10\" maxlength=\"11\" value=\"{$go['data7']}\" /></td>\r\n\r\n <td>" . makeinfocell($lang_game_object['data'] . " 8", $lang_game_object['data_desc']) . "</td>\r\n <td><input type=\"text\" name=\"data8\" size=\"10\" maxlength=\"11\" value=\"{$go['data8']}\" /></td>\r\n</tr>\r\n<tr>\r\n <td>" . makeinfocell($lang_game_object['data'] . " 9", $lang_game_object['data_desc']) . "</td>\r\n <td><input type=\"text\" name=\"data9\" size=\"10\" maxlength=\"11\" value=\"{$go['data9']}\" /></td>\r\n\r\n <td>" . makeinfocell($lang_game_object['data'] . " 10", $lang_game_object['data_desc']) . "</td>\r\n <td><input type=\"text\" name=\"data10\" size=\"10\" maxlength=\"11\" value=\"{$go['data10']}\" /></td>\r\n\r\n <td>" . makeinfocell($lang_game_object['data'] . " 11", $lang_game_object['data_desc']) . "</td>\r\n <td><input type=\"text\" name=\"data11\" size=\"10\" maxlength=\"11\" value=\"{$go['data11']}\" /></td>\r\n</tr>\r\n<tr>\r\n <td>" . makeinfocell($lang_game_object['data'] . " 12", $lang_game_object['data_desc']) . "</td>\r\n <td><input type=\"text\" name=\"data12\" size=\"10\" maxlength=\"11\" value=\"{$go['data12']}\" /></td>\r\n\r\n <td>" . makeinfocell($lang_game_object['data'] . " 13", $lang_game_object['data_desc']) . "</td>\r\n <td><input type=\"text\" name=\"data13\" size=\"10\" maxlength=\"11\" value=\"{$go['data13']}\" /></td>\r\n\r\n <td>" . makeinfocell($lang_game_object['data'] . " 14", $lang_game_object['data_desc']) . "</td>\r\n <td><input type=\"text\" name=\"data14\" size=\"10\" maxlength=\"11\" value=\"{$go['data14']}\" /></td>\r\n</tr>\r\n<tr>\r\n <td>" . makeinfocell($lang_game_object['data'] . " 15", $lang_game_object['data_desc']) . "</td>\r\n <td><input type=\"text\" name=\"data15\" size=\"10\" maxlength=\"11\" value=\"{$go['data15']}\" /></td>\r\n\r\n <td>" . makeinfocell($lang_game_object['data'] . " 16", $lang_game_object['data_desc']) . "</td>\r\n <td><input type=\"text\" name=\"data16\" size=\"10\" maxlength=\"11\" value=\"{$go['data16']}\" /></td>\r\n\r\n <td>" . makeinfocell($lang_game_object['data'] . " 17", $lang_game_object['data_desc']) . "</td>\r\n <td><input type=\"text\" name=\"data17\" size=\"10\" maxlength=\"11\" value=\"{$go['data17']}\" /></td>\r\n</tr>\r\n<tr>\r\n <td>" . makeinfocell($lang_game_object['data'] . " 18", $lang_game_object['data_desc']) . "</td>\r\n <td><input type=\"text\" name=\"data18\" size=\"10\" maxlength=\"11\" value=\"{$go['data18']}\" /></td>\r\n\r\n <td>" . makeinfocell($lang_game_object['data'] . " 19", $lang_game_object['data_desc']) . "</td>\r\n <td><input type=\"text\" name=\"data19\" size=\"10\" maxlength=\"11\" value=\"{$go['data19']}\" /></td>\r\n\r\n <td>" . makeinfocell($lang_game_object['data'] . " 20", $lang_game_object['data_desc']) . "</td>\r\n <td><input type=\"text\" name=\"data20\" size=\"10\" maxlength=\"11\" value=\"{$go['data20']}\" /></td>\r\n</tr>\r\n<tr>\r\n <td>" . makeinfocell($lang_game_object['data'] . " 21", $lang_game_object['data_desc']) . "</td>\r\n <td><input type=\"text\" name=\"data21\" size=\"10\" maxlength=\"11\" value=\"{$go['data21']}\" /></td>\r\n\r\n <td>" . makeinfocell($lang_game_object['data'] . " 22", $lang_game_object['data_desc']) . "</td>\r\n <td><input type=\"text\" name=\"data22\" size=\"10\" maxlength=\"11\" value=\"{$go['data22']}\" /></td>\r\n\r\n <td>" . makeinfocell($lang_game_object['data'] . " 23", $lang_game_object['data_desc']) . "</td>\r\n <td><input type=\"text\" name=\"data23\" size=\"10\" maxlength=\"11\" value=\"{$go['data23']}\" /></td>\r\n</tr>\r\n</table>\r\n<br />\r\n</div>"; if ($go['type'] == 3) { $output .= "<div id=\"pane3\">\r\n <br /><br /><table class=\"lined\" style=\"width: 720px;\">\r\n <tr class=\"large_bold\"><td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_game_object['loot_tmpl_id']}:</td></tr>\r\n<tr>\r\n <td colspan=\"6\">"; require_once "scripts/get_lib.php"; $cel_counter = 0; $row_flag = 0; $output .= "<table class=\"hidden\" align=\"center\"><tr>"; $result1 = $sql->query("SELECT item,ChanceOrQuestChance,`groupid`,mincountOrRef,maxcount, lootcondition, condition_value1, condition_value2 FROM gameobject_loot_template WHERE entry = {$go['data1']} ORDER BY ChanceOrQuestChance DESC"); while ($item = $sql->fetch_row($result1)) { $cel_counter++; $tooltip = get_item_name($item[0]) . " ({$item['0']})<br />{$lang_game_object['drop_chance']}: {$item['1']}%<br />{$lang_game_object['quest_drop_chance']}: {$item['2']}%<br />{$lang_game_object['drop_chance']}: {$item['3']}-{$item['4']}<br />{$lang_game_object['lootcondition']}: {$item['5']}<br />{$lang_game_object['condition_value1']}: {$item['6']}<br />{$lang_game_object['condition_value2']}: {$item['7']}"; $output .= "<td>"; $output .= maketooltip("<img src=\"" . get_item_icon($item[0]) . "\" class=\"icon_border\" alt=\"\" />", "{$item_datasite}{$item['0']}", "{$tooltip}", "item_tooltip", "target=\"_blank\""); $output .= "<br /><input type=\"checkbox\" name=\"del_loot_items[]\" value=\"{$item['0']}\" /></td>"; if ($cel_counter >= 16) { $cel_counter = 0; $output .= "</tr><tr>"; $row_flag++; } } if ($row_flag) { $output .= "<td colspan=\"" . (16 - $cel_counter) . "\"></td>"; } $output .= "</td></tr></table>\r\n </td>\r\n</tr>\r\n<tr class=\"large_bold\"><td colspan=\"6\" class=\"hidden\" align=\"left\">{$lang_game_object['add_items_to_templ']}:</td></tr>\r\n<tr>\r\n<td>" . makeinfocell($lang_game_object['loot_item_id'], $lang_game_object['loot_item_id_desc']) . "</td>\r\n <td><input type=\"text\" name=\"item\" size=\"8\" maxlength=\"10\" value=\"\" /></td>\r\n<td>" . makeinfocell($lang_game_object['loot_drop_chance'], $lang_game_object['loot_drop_chance_desc']) . "</td>\r\n <td><input type=\"text\" name=\"ChanceOrQuestChance\" size=\"8\" maxlength=\"11\" value=\"0\" /></td>\r\n<td>" . makeinfocell($lang_game_object['loot_quest_drop_chance'], $lang_game_object['loot_quest_drop_chance_desc']) . "</td>\r\n <td><input type=\"text\" name=\"groupid\" size=\"8\" maxlength=\"10\" value=\"0\" /></td>\r\n</tr>\r\n<tr>\r\n<td>" . makeinfocell($lang_game_object['min_count'], $lang_game_object['min_count_desc']) . "</td>\r\n <td><input type=\"text\" name=\"mincountOrRef\" size=\"8\" maxlength=\"3\" value=\"1\" /></td>\r\n<td>" . makeinfocell($lang_game_object['max_count'], $lang_game_object['max_count_desc']) . "</td>\r\n <td><input type=\"text\" name=\"maxcount\" size=\"8\" maxlength=\"3\" value=\"1\" /></td>\r\n</tr>\r\n<tr>\r\n<td>" . makeinfocell($lang_game_object['lootcondition'], $lang_game_object['lootcondition_desc']) . "</td>\r\n <td><input type=\"text\" name=\"lootcondition\" size=\"8\" maxlength=\"3\" value=\"0\" /></td>\r\n<td>" . makeinfocell($lang_game_object['condition_value1'], $lang_game_object['condition_value1_desc']) . "</td>\r\n <td><input type=\"text\" name=\"condition_value1\" size=\"8\" maxlength=\"3\" value=\"0\" /></td>\r\n<td>" . makeinfocell($lang_game_object['condition_value2'], $lang_game_object['condition_value2']) . "</td>\r\n <td><input type=\"text\" name=\"condition_value2\" size=\"8\" maxlength=\"3\" value=\"0\" /></td>\r\n</tr>\r\n</table><br />{$lang_game_object['check_to_delete']}<br /><br />\r\n</div>"; } $output .= "<div id=\"pane4\">\r\n <br /><br /><table class=\"lined\" style=\"width: 720px;\">\r\n <tr class=\"large_bold\"><td colspan=\"2\" class=\"hidden\" align=\"left\">{$lang_game_object['start_quests']}:</td></tr>"; $result1 = $sql->query("SELECT quest FROM gameobject_questrelation WHERE id = {$go['entry']}"); while ($quest = $sql->fetch_row($result1)) { $query1 = $sql->query("SELECT QuestLevel, IFNULL(" . ($deplang != 0 ? "title_loc{$deplang}" : "NULL") . ",`title`) as Title FROM quest_template LEFT JOIN locales_quest ON quest_template.entry = locales_quest.entry WHERE quest_template.entry ='{$quest['0']}'"); $quest_templ = $sql->fetch_row($query1); $output .= "<tr><td width=\"5%\"><input type=\"checkbox\" name=\"del_questrelation[]\" value=\"{$quest['0']}\" /></td>\r\n <td width=\"95%\" align=\"left\"><a class=\"tooltip\" href=\"{$quest_datasite}{$quest['0']}\" target=\"_blank\">({$quest_templ[0]}) {$quest_templ['1']}</a></td></tr>"; } $output .= "<tr class=\"large_bold\" align=\"left\"><td colspan=\"2\" class=\"hidden\">{$lang_game_object['add_starts_quests']}:</td></tr>\r\n <tr><td colspan=\"2\" align=\"left\">" . makeinfocell($lang_game_object['quest_id'], $lang_game_object['quest_id_desc']) . " :\r\n <input type=\"text\" name=\"questrelation\" size=\"8\" maxlength=\"8\" value=\"\" /></td></tr>\r\n\r\n<tr class=\"large_bold\"><td colspan=\"2\" class=\"hidden\" align=\"left\">{$lang_game_object['ends_quests']}:</td></tr>"; $result1 = $sql->query("SELECT quest FROM gameobject_involvedrelation WHERE id = {$go['entry']}"); while ($quest = $sql->fetch_row($result1)) { $query1 = $sql->query("SELECT QuestLevel, IFNULL(" . ($deplang != 0 ? "title_loc{$deplang}" : "NULL") . ",`title`) as Title FROM quest_template LEFT JOIN locales_quest ON quest_template.entry = locales_quest.entry WHERE quest_template.entry ='{$quest['0']}'"); $quest_templ = $sql->fetch_row($query1); $output .= "<tr><td width=\"5%\"><input type=\"checkbox\" name=\"del_involvedrelation[]\" value=\"{$quest['0']}\" /></td>\r\n <td width=\"95%\" align=\"left\"><a class=\"tooltip\" href=\"{$quest_datasite}{$quest['0']}\" target=\"_blank\">({$quest_templ[0]}) {$quest_templ['1']}</a></td></tr>"; } $output .= "<tr class=\"large_bold\" align=\"left\"><td colspan=\"2\" class=\"hidden\">{$lang_game_object['add_ends_quests']}:</td></tr>\r\n <tr><td colspan=\"2\" align=\"left\">" . makeinfocell($lang_game_object['quest_id'], $lang_game_object['quest_id_desc']) . " :\r\n <input type=\"text\" name=\"involvedrelation\" size=\"8\" maxlength=\"8\" value=\"\" /></td></tr>\r\n\r\n</table><br />{$lang_game_object['check_to_delete']}<br /><br />\r\n</div>\r\n\r\n</div>\r\n</div>\r\n<br />\r\n</form>\r\n\r\n<script type=\"text/javascript\">setupPanes(\"container\", \"tab1\")</script>"; $output .= "<table class=\"hidden\">\r\n <tr><td>"; makebutton($lang_game_object['save_to_db'], "javascript:do_submit('form1',0)", 180); makebutton($lang_game_object['del_go'], "game_object.php?action=delete&entry={$entry}", 180); makebutton($lang_game_object['del_spawns'], "game_object.php?action=delete_spwn&entry={$entry}", 180); makebutton($lang_game_object['save_to_script'], "javascript:do_submit('form1',1)", 180); $output .= "</td></tr><tr><td>"; makebutton($lang_game_object['lookup_go'], "game_object.php", 760); $output .= "</td></tr>\r\n </table></center>"; $sql->close(); } else { $sql->close(); error($lang_game_object['tmpl_not_found']); exit; } }
function char_talent(&$sqlr, &$sqlc) { global $output, $lang_global, $lang_char, $realm_id, $realm_db, $characters_db, $mmfpm_db, $server, $action_permission, $user_lvl, $user_name, $spell_datasite; // this page uses wowhead tooltops wowhead_tt(); //==========================$_GET and SECURE================================= // id and multi realm security to prevent sql injection require_once './include/char/include/char_multi_realm_security.php'; //==========================$_GET and SECURE end============================= // getting character data from database $result = $sqlc->query(' SELECT account, name, race, class, level, gender, specCount AS talent_points FROM characters WHERE guid = ' . $id . ' LIMIT 1'); // no point going further if character does not exist if ($sqlc->num_rows($result)) { $char = $sqlc->fetch_assoc($result); // we get user permissions first $owner_acc_id = $sqlc->result($result, 0, 'account'); $result = $sqlr->query(' SELECT gmlevel, username FROM account WHERE id = ' . $char['account'] . ''); $owner_gmlvl = $sqlr->result($result, 0, 'gmlevel'); $owner_name = $sqlr->result($result, 0, 'username'); // check user permission if ($user_lvl > $owner_gmlvl || $owner_name === $user_name) { // character sub header $output .= ' <center> <div id="tab_content"> <h1>' . $lang_char['talents'] . '</h1> <br />'; // character menu tab require_once './include/char/include/char_header.php'; // character info require_once './include/char/include/char_info.php'; //---------------Page Specific Data Starts Here-------------------------- $output .= ' <div id="tab_content2"> <table class="lined" style="width: 550px;"> <tr valign="top" align="center">'; $result = $sqlc->query(' SELECT spell FROM character_spell WHERE guid = ' . $id . ' AND active = 1 AND disabled = 0 ORDER BY spell DESC'); if ($sqlc->num_rows($result)) { $talent_rate = isset($server[$realmid]['talent_rate']) ? $server[$realmid]['talent_rate'] : 1; $talent_points = ($char['level'] - 9) * $talent_rate; $talent_points_left = $char['talent_points']; $talent_points_used = $talent_points - $talent_points_left; $sqlm = new SQL(); $sqlm->connect($mmfpm_db['addr'], $mmfpm_db['user'], $mmfpm_db['pass'], $mmfpm_db['name']); $tabs = array(); $l = 0; while (($talent = $sqlc->fetch_assoc($result)) && $l < $talent_points_used) { if ($tab = $sqlm->fetch_assoc($sqlm->query(' SELECT field_1, field_2, field_3, field_13, field_16 FROM dbc_talent WHERE field_8 = ' . $talent['spell'] . ' LIMIT 1'))) { if (isset($tabs[$tab['field_1']][$tab['field_2']][$tab['field_3']])) { $l -= $tabs[$tab['field_1']][$tab['field_2']][$tab['field_3']][1]; } $tabs[$tab['field_1']][$tab['field_2']][$tab['field_3']] = array($talent['spell'], '5', '5'); $l += 5; if ($tab['field_13']) { talent_dependencies($tabs, $tab, $l, $sqlm); } } elseif ($tab = $sqlm->fetch_assoc($sqlm->query(' SELECT field_1, field_2, field_3, field_13, field_16, field_8 FROM dbc_talent WHERE field_7 = ' . $talent['spell'] . ' LIMIT 1'))) { if (isset($tabs[$tab['field_1']][$tab['field_2']][$tab['field_3']])) { $l -= $tabs[$tab['field_1']][$tab['field_2']][$tab['field_3']][1]; } $tabs[$tab['field_1']][$tab['field_2']][$tab['field_3']] = array($talent['spell'], '4', $tab['field_8'] ? '2' : '5'); $l += 4; if ($tab['field_13']) { talent_dependencies($tabs, $tab, $l, $sqlm); } } elseif ($tab = $sqlm->fetch_assoc($sqlm->query(' SELECT field_1, field_2, field_3, field_13, field_16, field_7 FROM dbc_talent WHERE field_6 = ' . $talent['spell'] . ' LIMIT 1'))) { if (isset($tabs[$tab['field_1']][$tab['field_2']][$tab['field_3']])) { $l -= $tabs[$tab['field_1']][$tab['field_2']][$tab['field_3']][1]; } $tabs[$tab['field_1']][$tab['field_2']][$tab['field_3']] = array($talent['spell'], '3', $tab['field_7'] ? '2' : '5'); $l += 3; if ($tab['field_13']) { talent_dependencies($tabs, $tab, $l, $sqlm); } } elseif ($tab = $sqlm->fetch_assoc($sqlm->query(' SELECT field_1, field_2, field_3, field_13, field_16, field_6 FROM dbc_talent WHERE field_5 = ' . $talent['spell'] . ' LIMIT 1'))) { if (isset($tabs[$tab['field_1']][$tab['field_2']][$tab['field_3']])) { $l -= $tabs[$tab['field_1']][$tab['field_2']][$tab['field_3']][1]; } $tabs[$tab['field_1']][$tab['field_2']][$tab['field_3']] = array($talent['spell'], '2', $tab['field_6'] ? '2' : '5'); $l += 2; if ($tab['field_13']) { talent_dependencies($tabs, $tab, $l, $sqlm); } } elseif ($tab = $sqlm->fetch_assoc($sqlm->query(' SELECT field_1, field_2, field_3, field_13, field_16, field_5 FROM dbc_talent WHERE field_4 = ' . $talent['spell'] . ' LIMIT 1'))) { if (isset($tabs[$tab['field_1']][$tab['field_2']][$tab['field_3']])) { $l -= $tabs[$tab['field_1']][$tab['field_2']][$tab['field_3']][1]; } $tabs[$tab['field_1']][$tab['field_2']][$tab['field_3']] = array($talent['spell'], '1', $tab['field_5'] ? '2' : '5'); $l += 1; if ($tab['field_13']) { talent_dependencies($tabs, $tab, $l, $sqlm); } } } unset($tab); unset($talent); foreach ($tabs as $k => $data) { $points = 0; $output .= ' <td> <table class="hidden" style="width: 0px;"> <tr> <td colspan="6" style="border-bottom-width: 0px;"> </td> </tr> <tr>'; for ($i = 0; $i < 11; ++$i) { for ($j = 0; $j < 4; ++$j) { if (isset($data[$i][$j])) { $output .= ' <td valign="bottom" align="center" style="border-top-width: 0px;border-bottom-width: 0px;"> <a href="' . $spell_datasite . $data[$i][$j][0] . '" target="_blank"> <img src="' . spell_get_icon($data[$i][$j][0], $sqlm) . '" width="36" height="36" class="icon_border_' . $data[$i][$j][2] . '" alt="" /> </a> <div style="width:0px;margin:-14px 0px 0px 30px;font-size:14px;color:black"> ' . $data[$i][$j][1] . ' </div> <div style="width:0px;margin:-14px 0px 0px 29px;font-size:14px;color:white"> ' . $data[$i][$j][1] . ' </div> </td>'; $points += $data[$i][$j][1]; } else { $output .= ' <td valign="bottom" align="center" style="border-top-width: 0px;border-bottom-width: 0px;"> <img src="img/blank.gif" width="44" height="44" alt="" /> </td>'; } } $output .= ' </tr> <tr>'; } $output .= ' <td colspan="6" style="border-top-width: 0px;border-bottom-width: 0px;"></td> </tr> <tr> <td colspan="6" valign="bottom" align="left"> ' . $sqlm->result($sqlm->query('SELECT field_1 FROM dbc_talenttab WHERE id = ' . $k . ''), 0, 'field_1') . ': ' . $points . ' </td> </tr> </table> </td>'; } unset($data); unset($k); unset($tabs); $output .= ' </tr> </table> <br /> <table> <tr> <td align="left"> ' . $lang_char['talent_rate'] . ': <br /> ' . $lang_char['talent_points'] . ': <br /> ' . $lang_char['talent_points_used'] . ': <br /> ' . $lang_char['talent_points_shown'] . ': <br /> ' . $lang_char['talent_points_left'] . ': </td> <td align="left"> ' . $talent_rate . '<br /> ' . $talent_points . '<br /> ' . $talent_points_used . '<br /> ' . $l . '<br /> ' . $talent_points_left . ' </td> <td width="64"> </td> <td align="right">'; unset($l); unset($talent_rate); unset($talent_points); unset($talent_points_used); unset($talent_points_left); $result = $sqlc->query(' SELECT spec, slot, glyph FROM character_glyphs WHERE guid = ' . $id . ''); while ($glyphs = $sqlc->fetch_assoc($result)) { if ($glyphs['glyph']) { $glyph = $sqlm->result($sqlm->query(' SELECT field_1 FROM dbc_glyphproperties WHERE id = ' . $glyphs['glyph'] . ''), 0); $output .= ' <a href="' . $spell_datasite . $glyph . '" target="_blank"> <img src="' . spell_get_icon($glyph, $sqlm) . '" width="36" height="36" class="icon_border_0" alt="" /> </a>'; } } unset($glyphs); $output .= ' </td>'; } $output .= ' </tr> </table>'; $output .= ' </div> <br />'; //---------------Page Specific Data Ends here---------------------------- // character sub footer require_once './include/char/include/char_ footer.php'; $output .= ' <br /> </center>'; } else { error($lang_char['no_permission']); } } else { error($lang_char['no_char_found']); } }
function char_main(&$sqlr, &$sqlc) { global $output, $lang_global, $lang_char, $lang_item, $realm_id, $realm_db, $characters_db, $world_db, $server, $mmfpm_db, $action_permission, $user_lvl, $user_name, $user_id, $item_datasite, $spell_datasite, $showcountryflag; // this page uses wowhead tooltops wowhead_tt(); require_once 'core/char/char_security.php'; $result = $sqlc->query('SELECT account, race FROM characters WHERE guid = ' . $id . ' LIMIT 1'); if ($sqlc->num_rows($result)) { //resrict by owner's gmlvl $owner_acc_id = $sqlc->result($result, 0, 'account'); $query = $sqlr->query('SELECT `username`, `gmlevel` FROM `account` LEFT JOIN `account_access` ON `account`.`id`=`account_access`.`id` WHERE `account`.`id` = ' . $owner_acc_id . ' ORDER BY `gmlevel` DESC LIMIT 1'); $owner_name = $sqlr->result($query, 0, 'username'); $owner_gmlvl = $sqlr->result($query, 0, 'gmlevel'); if (empty($owner_gmlvl)) { $owner_gmlvl = 0; } if ($user_lvl || $server[$realmid]['both_factions']) { $side_v = 0; $side_p = 0; } else { $side_p = in_array($sqlc->result($result, 0, 'race'), array(2, 5, 6, 8, 10)) ? 1 : 2; $result_1 = $sqlc->query('SELECT race FROM characters WHERE account = ' . $user_id . ' LIMIT 1'); if ($sqlc->num_rows($result)) { $side_v = in_array($sqlc->result($result_1, 0, 'race'), array(2, 5, 6, 8, 10)) ? 1 : 2; } else { $side_v = 0; } unset($result_1); } if ($user_lvl >= $owner_gmlvl && ($side_v === $side_p || !$side_v)) { $result = $sqlc->query('SELECT characters.equipmentCache, characters.name, characters.race, characters.class, characters.level, characters.zone, characters.map, characters.online, characters.totaltime, characters.gender, characters.account, character_stats.blockPct, character_stats.dodgePct, character_stats.parryPct, character_stats.critPct, character_stats.rangedCritPct, character_stats.spellCritPct, COALESCE(guild_member.guildid,0) AS guildid, COALESCE(guild_member.rank,0) AS rank, characters.totalHonorPoints, characters.arenaPoints, characters.totalKills, character_stats.maxhealth, character_stats.maxpower1, character_stats.strength, character_stats.agility, character_stats.stamina, character_stats.intellect, character_stats.spirit, character_stats.armor, character_stats.resHoly, character_stats.resFire, character_stats.resNature, character_stats.resFrost, character_stats.resShadow, character_stats.resArcane, character_stats.attackPower, character_stats.rangedAttackPower, character_stats.spellPower, characters.power2, character_stats.maxpower2, characters.power4, character_stats.maxpower4, characters.power3, character_stats.maxpower3 FROM characters LEFT JOIN character_stats ON characters.guid = character_stats.guid LEFT JOIN guild_member ON characters.guid = guild_member.guid WHERE characters.guid = ' . $id); $char = $sqlc->fetch_assoc($result); $eq_data = explode(' ', $char['equipmentCache']); $online = $char['online'] ? $lang_char['online'] : $lang_char['offline']; if ($char['guildid'] && $char['guildid'] != 0) { $guild_name = $sqlc->result($sqlc->query('SELECT name FROM guild WHERE guildid =' . $char['guildid'] . ''), 0, 'name'); $guild_name = '<a href="guild.php?action=view_guild&realm=' . $realmid . '&error=3&id=' . $char['guildid'] . '" >' . $guild_name . '</a>'; $mrank = $char['rank']; $guild_rank = $sqlc->result($sqlc->query('SELECT rname FROM guild_rank WHERE guildid =' . $char['guildid'] . ' AND rid=' . $mrank . ''), 0, 'rname'); } else { $guild_name = $lang_global['none']; $guild_rank = $lang_global['none']; } $block = round($char['blockPct'], 2); $dodge = round($char['dodgePct'], 2); $parry = round($char['parryPct'], 2); $crit = round($char['critPct'], 2); $ranged_crit = round($char['rangedCritPct'], 2); $spell_crit = round($char['spellCritPct'], 2); $spell_damage = $char['spellPower']; $rage = round($char['power2'] / 10); $maxrage = round($char['maxpower2'] / 10); //preventing undefined variables, didnt want to remove all this stuff so just filling the missing variables with 0 define('CHAR_DATA_OFFSET_MELEE_HIT', 0); define('CHAR_DATA_OFFSET_SPELL_HEAL', 1); define('CHAR_DATA_OFFSET_SPELL_HIT', 2); define('CHAR_DATA_OFFSET_SPELL_HASTE_RATING', 3); define('CHAR_DATA_OFFSET_RESILIENCE', 4); define('CHAR_DATA_OFFSET_RANGE_HIT', 5); $char_data = array(0, 0, 0, 0, 0, 0); $maxdamage = 0; $mindamage = 0; $maxrangeddamage = 0; $minrangeddamage = 0; $expertise = 0; $EQU_HEAD = $eq_data[EQ_DATA_OFFSET_EQU_HEAD]; $EQU_NECK = $eq_data[EQ_DATA_OFFSET_EQU_NECK]; $EQU_SHOULDER = $eq_data[EQ_DATA_OFFSET_EQU_SHOULDER]; $EQU_SHIRT = $eq_data[EQ_DATA_OFFSET_EQU_SHIRT]; $EQU_CHEST = $eq_data[EQ_DATA_OFFSET_EQU_CHEST]; $EQU_BELT = $eq_data[EQ_DATA_OFFSET_EQU_BELT]; $EQU_LEGS = $eq_data[EQ_DATA_OFFSET_EQU_LEGS]; $EQU_FEET = $eq_data[EQ_DATA_OFFSET_EQU_FEET]; $EQU_WRIST = $eq_data[EQ_DATA_OFFSET_EQU_WRIST]; $EQU_GLOVES = $eq_data[EQ_DATA_OFFSET_EQU_GLOVES]; $EQU_FINGER1 = $eq_data[EQ_DATA_OFFSET_EQU_FINGER1]; $EQU_FINGER2 = $eq_data[EQ_DATA_OFFSET_EQU_FINGER2]; $EQU_TRINKET1 = $eq_data[EQ_DATA_OFFSET_EQU_TRINKET1]; $EQU_TRINKET2 = $eq_data[EQ_DATA_OFFSET_EQU_TRINKET2]; $EQU_BACK = $eq_data[EQ_DATA_OFFSET_EQU_BACK]; $EQU_MAIN_HAND = $eq_data[EQ_DATA_OFFSET_EQU_MAIN_HAND]; $EQU_OFF_HAND = $eq_data[EQ_DATA_OFFSET_EQU_OFF_HAND]; $EQU_RANGED = $eq_data[EQ_DATA_OFFSET_EQU_RANGED]; $EQU_TABARD = $eq_data[EQ_DATA_OFFSET_EQU_TABARD]; /* // reserved incase we want to use back minimanagers' built in tooltip, instead of wowheads' // minimanagers' item tooltip needs updating, but it can show enchantments and sockets. $equiped_items = array ( 1 => array(($EQU_HEAD ? get_item_tooltip($EQU_HEAD) : 0),($EQU_HEAD ? get_item_icon($EQU_HEAD) : 0),($EQU_HEAD ? get_item_border($EQU_HEAD) : 0)), 2 => array(($EQU_NECK ? get_item_tooltip($EQU_NECK) : 0),($EQU_NECK ? get_item_icon($EQU_NECK) : 0),($EQU_NECK ? get_item_border($EQU_NECK) : 0)), 3 => array(($EQU_SHOULDER ? get_item_tooltip($EQU_SHOULDER) : 0),($EQU_SHOULDER ? get_item_icon($EQU_SHOULDER) : 0),($EQU_SHOULDER ? get_item_border($EQU_SHOULDER) : 0)), 4 => array(($EQU_SHIRT ? get_item_tooltip($EQU_SHIRT) : 0),($EQU_SHIRT ? get_item_icon($EQU_SHIRT) : 0),($EQU_SHIRT ? get_item_border($EQU_SHIRT) : 0)), 5 => array(($EQU_CHEST ? get_item_tooltip($EQU_CHEST) : 0),($EQU_CHEST ? get_item_icon($EQU_CHEST) : 0),($EQU_CHEST ? get_item_border($EQU_CHEST) : 0)), 6 => array(($EQU_BELT ? get_item_tooltip($EQU_BELT) : 0),($EQU_BELT ? get_item_icon($EQU_BELT) : 0),($EQU_BELT ? get_item_border($EQU_BELT) : 0)), 7 => array(($EQU_LEGS ? get_item_tooltip($EQU_LEGS) : 0),($EQU_LEGS ? get_item_icon($EQU_LEGS) : 0),($EQU_LEGS ? get_item_border($EQU_LEGS) : 0)), 8 => array(($EQU_FEET ? get_item_tooltip($EQU_FEET) : 0),($EQU_FEET ? get_item_icon($EQU_FEET) : 0),($EQU_FEET ? get_item_border($EQU_FEET) : 0)), 9 => array(($EQU_WRIST ? get_item_tooltip($EQU_WRIST) : 0),($EQU_WRIST ? get_item_icon($EQU_WRIST) : 0),($EQU_WRIST ? get_item_border($EQU_WRIST) : 0)), 10 => array(($EQU_GLOVES ? get_item_tooltip($EQU_GLOVES) : 0),($EQU_GLOVES ? get_item_icon($EQU_GLOVES) : 0),($EQU_GLOVES ? get_item_border($EQU_GLOVES) : 0)), 11 => array(($EQU_FINGER1 ? get_item_tooltip($EQU_FINGER1) : 0),($EQU_FINGER1 ? get_item_icon($EQU_FINGER1) : 0),($EQU_FINGER1 ? get_item_border($EQU_FINGER1) : 0)), 12 => array(($EQU_FINGER2 ? get_item_tooltip($EQU_FINGER2) : 0),($EQU_FINGER2 ? get_item_icon($EQU_FINGER2) : 0),($EQU_FINGER2 ? get_item_border($EQU_FINGER2) : 0)), 13 => array(($EQU_TRINKET1 ? get_item_tooltip($EQU_TRINKET1) : 0),($EQU_TRINKET1 ? get_item_icon($EQU_TRINKET1) : 0),($EQU_TRINKET1 ? get_item_border($EQU_TRINKET1) : 0)), 14 => array(($EQU_TRINKET2 ? get_item_tooltip($EQU_TRINKET2) : 0),($EQU_TRINKET2 ? get_item_icon($EQU_TRINKET2) : 0),($EQU_TRINKET2 ? get_item_border($EQU_TRINKET2) : 0)), 15 => array(($EQU_BACK ? get_item_tooltip($EQU_BACK) : 0),($EQU_BACK ? get_item_icon($EQU_BACK) : 0),($EQU_BACK ? get_item_border($EQU_BACK) : 0)), 16 => array(($EQU_MAIN_HAND ? get_item_tooltip($EQU_MAIN_HAND) : 0),($EQU_MAIN_HAND ? get_item_icon($EQU_MAIN_HAND) : 0),($EQU_MAIN_HAND ? get_item_border($EQU_MAIN_HAND) : 0)), 17 => array(($EQU_OFF_HAND ? get_item_tooltip($EQU_OFF_HAND) : 0),($EQU_OFF_HAND ? get_item_icon($EQU_OFF_HAND) : 0),($EQU_OFF_HAND ? get_item_border($EQU_OFF_HAND) : 0)), 18 => array(($EQU_RANGED ? get_item_tooltip($EQU_RANGED) : 0),($EQU_RANGED ? get_item_icon($EQU_RANGED) : 0),($EQU_RANGED ? get_item_border($EQU_RANGED) : 0)), 19 => array(($EQU_TABARD ? get_item_tooltip($EQU_TABARD) : 0),($EQU_TABARD ? get_item_icon($EQU_TABARD) : 0),($EQU_TABARD ? get_item_border($EQU_TABARD) : 0)) ); */ $sqlm = new SQL(); $sqlm->connect($mmfpm_db['addr'], $mmfpm_db['user'], $mmfpm_db['pass'], $mmfpm_db['name']); $sqlw = new SQL(); $sqlw->connect($world_db[$realmid]['addr'], $world_db[$realmid]['user'], $world_db[$realmid]['pass'], $world_db[$realmid]['name']); $equiped_items = array(1 => array('', $EQU_HEAD ? get_item_icon($EQU_HEAD, $sqlm, $sqlw) : 0, $EQU_HEAD ? get_item_border($EQU_HEAD, $sqlw) : 0), 2 => array('', $EQU_NECK ? get_item_icon($EQU_NECK, $sqlm, $sqlw) : 0, $EQU_NECK ? get_item_border($EQU_NECK, $sqlw) : 0), 3 => array('', $EQU_SHOULDER ? get_item_icon($EQU_SHOULDER, $sqlm, $sqlw) : 0, $EQU_SHOULDER ? get_item_border($EQU_SHOULDER, $sqlw) : 0), 4 => array('', $EQU_SHIRT ? get_item_icon($EQU_SHIRT, $sqlm, $sqlw) : 0, $EQU_SHIRT ? get_item_border($EQU_SHIRT, $sqlw) : 0), 5 => array('', $EQU_CHEST ? get_item_icon($EQU_CHEST, $sqlm, $sqlw) : 0, $EQU_CHEST ? get_item_border($EQU_CHEST, $sqlw) : 0), 6 => array('', $EQU_BELT ? get_item_icon($EQU_BELT, $sqlm, $sqlw) : 0, $EQU_BELT ? get_item_border($EQU_BELT, $sqlw) : 0), 7 => array('', $EQU_LEGS ? get_item_icon($EQU_LEGS, $sqlm, $sqlw) : 0, $EQU_LEGS ? get_item_border($EQU_LEGS, $sqlw) : 0), 8 => array('', $EQU_FEET ? get_item_icon($EQU_FEET, $sqlm, $sqlw) : 0, $EQU_FEET ? get_item_border($EQU_FEET, $sqlw) : 0), 9 => array('', $EQU_WRIST ? get_item_icon($EQU_WRIST, $sqlm, $sqlw) : 0, $EQU_WRIST ? get_item_border($EQU_WRIST, $sqlw) : 0), 10 => array('', $EQU_GLOVES ? get_item_icon($EQU_GLOVES, $sqlm, $sqlw) : 0, $EQU_GLOVES ? get_item_border($EQU_GLOVES, $sqlw) : 0), 11 => array('', $EQU_FINGER1 ? get_item_icon($EQU_FINGER1, $sqlm, $sqlw) : 0, $EQU_FINGER1 ? get_item_border($EQU_FINGER1, $sqlw) : 0), 12 => array('', $EQU_FINGER2 ? get_item_icon($EQU_FINGER2, $sqlm, $sqlw) : 0, $EQU_FINGER2 ? get_item_border($EQU_FINGER2, $sqlw) : 0), 13 => array('', $EQU_TRINKET1 ? get_item_icon($EQU_TRINKET1, $sqlm, $sqlw) : 0, $EQU_TRINKET1 ? get_item_border($EQU_TRINKET1, $sqlw) : 0), 14 => array('', $EQU_TRINKET2 ? get_item_icon($EQU_TRINKET2, $sqlm, $sqlw) : 0, $EQU_TRINKET2 ? get_item_border($EQU_TRINKET2, $sqlw) : 0), 15 => array('', $EQU_BACK ? get_item_icon($EQU_BACK, $sqlm, $sqlw) : 0, $EQU_BACK ? get_item_border($EQU_BACK, $sqlw) : 0), 16 => array('', $EQU_MAIN_HAND ? get_item_icon($EQU_MAIN_HAND, $sqlm, $sqlw) : 0, $EQU_MAIN_HAND ? get_item_border($EQU_MAIN_HAND, $sqlw) : 0), 17 => array('', $EQU_OFF_HAND ? get_item_icon($EQU_OFF_HAND, $sqlm, $sqlw) : 0, $EQU_OFF_HAND ? get_item_border($EQU_OFF_HAND, $sqlw) : 0), 18 => array('', $EQU_RANGED ? get_item_icon($EQU_RANGED, $sqlm, $sqlw) : 0, $EQU_RANGED ? get_item_border($EQU_RANGED, $sqlw) : 0), 19 => array('', $EQU_TABARD ? get_item_icon($EQU_TABARD, $sqlm, $sqlw) : 0, $EQU_TABARD ? get_item_border($EQU_TABARD, $sqlw) : 0)); if ($user_lvl > $owner_gmlvl || $owner_name === $user_name) { $output .= ' <center> <div id="tab_content"> <h1>' . $lang_char['char_sheet'] . '</h1><br /> <div id="tab"> <ul> <li><a href="char.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['char_sheet'] . '</a></li> <li><a href="char_inv.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['inventory'] . '</a></li> <li><a href="char_extra.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['extra'] . '</a></li> ' . ($char['level'] < 10 ? '' : '<li><a href="char_talent.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['talents'] . '</a></li>') . ' <li><a href="char_achieve.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['achievements'] . '</a></li> <li><a href="char_rep.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['reputation'] . '</a></li> <li><a href="char_skill.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['skills'] . '</a></li> <li><a href="char_quest.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['quests'] . '</a></li>'; if (char_get_class_name($char['class']) === 'Hunter') { $output .= ' <li><a href="char_pets.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['pets'] . '</a></li>'; } $output .= ' <li><a href="char_friends.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['friends'] . '</a></li> <li><a href="char_spell.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['spells'] . '</a></li> <li><a href="char_mail.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['mail'] . '</a></li>'; } else { $output .= ' <center> <div id="tab_content"> <h1>' . $lang_char['char_sheet'] . '</h1><br /> <div id="tab"> <ul> <li><a href="char.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['char_sheet'] . '</a></li>'; } $output .= ' </ul> </div> <div id="tab_content2"> <table class="lined" style="width: 580px;"> <tr> <td colspan="2"> <div> <img src="' . char_get_avatar_img($char['level'], $char['gender'], $char['race'], $char['class'], 0) . '" alt="avatar" /> </div> <div>'; $a_results = $sqlc->query('SELECT DISTINCT spell FROM character_aura WHERE guid = ' . $id . ''); if ($sqlc->num_rows($a_results)) { while ($aura = $sqlc->fetch_assoc($a_results)) { $output .= ' <a style="padding:2px;" href="' . $spell_datasite . $aura['spell'] . '" target="_blank"> <img src="' . spell_get_icon($aura['spell'], $sqlm) . '" alt="' . $aura['spell'] . '" width="24" height="24" /> </a>'; } } $output .= ' </div> </td> <td colspan="4"> <font class="bold"> ' . htmlentities($char['name']) . ' - <img src="img/c_icons/' . $char['race'] . '-' . $char['gender'] . '.gif" onmousemove="toolTip(\'' . char_get_race_name($char['race']) . '\', \'item_tooltip\')" onmouseout="toolTip()" alt="" /> <img src="img/c_icons/' . $char['class'] . '.gif" onmousemove="toolTip(\'' . char_get_class_name($char['class']) . '\', \'item_tooltip\')" onmouseout="toolTip()" alt="" /> - lvl ' . char_get_level_color($char['level']) . ' </font> <br />' . get_map_name($char['map'], $sqlm) . ' - ' . get_zone_name($char['zone'], $sqlm) . ' <br />' . $lang_char['honor_points'] . ': ' . $char['totalHonorPoints'] . ' / ' . $char['arenaPoints'] . ' - ' . $lang_char['honor_kills'] . ': ' . $char['totalKills'] . ' <br />' . $lang_char['guild'] . ': ' . $guild_name . ' | ' . $lang_char['rank'] . ': ' . htmlentities($guild_rank) . ' <br />' . ($char['online'] ? '<img src="img/up.gif" onmousemove="toolTip(\'Online\', \'item_tooltip\')" onmouseout="toolTip()" alt="online" />' : '<img src="img/down.gif" onmousemove="toolTip(\'Offline\', \'item_tooltip\')" onmouseout="toolTip()" alt="offline" />'); if ($showcountryflag) { require_once 'libs/misc_lib.php'; $country = misc_get_country_by_account($char['account'], $sqlr, $sqlm); $output .= ' - ' . ($country['code'] ? '<img src="img/flags/' . $country['code'] . '.png" onmousemove="toolTip(\'' . $country['country'] . '\', \'item_tooltip\')" onmouseout="toolTip()" alt="" />' : '-'); unset($country); } $output .= ' </td> </tr> <tr> <td width="6%">'; if ($equiped_items[1][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_HEAD . '" target="_blank"> <img src="' . $equiped_items[1][1] . '" class="' . $equiped_items[1][2] . '" alt="Head" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_head.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> <td class="half_line" colspan="2" align="center" width="50%"> <div class="gradient_p">' . $lang_item['health'] . ':</div> <div class="gradient_pp">' . $char['maxhealth'] . '</div>'; if ($char['class'] == 11) { //druid $output .= ' </br> <div class="gradient_p">' . $lang_item['energy'] . ':</div> <div class="gradient_pp">' . $char['power4'] . '/' . $char['maxpower4'] . '</div>'; } $output .= ' </td> <td class="half_line" colspan="2" align="center" width="50%">'; if ($char['class'] == 1) { // warrior $output .= ' <div class="gradient_p">' . $lang_item['rage'] . ':</div> <div class="gradient_pp">' . $rage . '/' . $maxrage . '</div>'; } elseif ($char['class'] == 4) { // rogue $output .= ' <div class="gradient_p">' . $lang_item['energy'] . ':</div> <div class="gradient_pp">' . $char['power4'] . '/' . $char['maxpower4'] . '</div>'; } elseif ($char['class'] == 6) { // death knight // Don't know if FOCUS is the right one need to verify with Death Knight player. $output .= ' <div class="gradient_p">' . $lang_item['runic'] . ':</div> <div class="gradient_pp">' . $char['power3'] . '/' . $char['maxpower3'] . '</div>'; } elseif ($char['class'] == 11) { // druid $output .= ' <div class="gradient_p">' . $lang_item['mana'] . ':</div> <div class="gradient_pp">' . $char['maxpower1'] . '</div> </br> <div class="gradient_p">' . $lang_item['rage'] . ':</div> <div class="gradient_pp">' . $rage . '/' . $maxrage . '</div>'; } elseif ($char['class'] == 2 || $char['class'] == 3 || $char['class'] == 5 || $char['class'] == 7 || $char['class'] == 8 || $char['class'] == 9) { // warlock $output .= ' <div class="gradient_p">' . $lang_item['mana'] . ':</div> <div class="gradient_pp">' . $char['maxpower1'] . '</div>'; } $output .= ' </td> <td width="6%">'; if ($equiped_items[10][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_GLOVES . '" target="_blank"> <img src="' . $equiped_items[10][1] . '" class="' . $equiped_items[10][2] . '" alt="Gloves" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_gloves.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> </tr> <tr> <td width="1%">'; if ($equiped_items[2][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_NECK . '" target="_blank"> <img src="' . $equiped_items[2][1] . '" class="' . $equiped_items[2][2] . '" alt="Neck" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_neck.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> <td class="half_line" colspan="2" rowspan="3" align="center" width="50%"> <div class="gradient_p"> ' . $lang_item['strength'] . ':<br /> ' . $lang_item['agility'] . ':<br /> ' . $lang_item['stamina'] . ':<br /> ' . $lang_item['intellect'] . ':<br /> ' . $lang_item['spirit'] . ':<br /> ' . $lang_item['armor'] . ': </div> <div class="gradient_pp"> ' . $char['strength'] . '<br /> ' . $char['agility'] . '<br /> ' . $char['stamina'] . '<br /> ' . $char['intellect'] . '<br /> ' . $char['spirit'] . '<br /> ' . $char['armor'] . ' </div> </td> <td class="half_line" colspan="2" rowspan="3" align="center" width="50%"> <div class="gradient_p"> ' . $lang_item['res_holy'] . ':<br /> ' . $lang_item['res_arcane'] . ':<br /> ' . $lang_item['res_fire'] . ':<br /> ' . $lang_item['res_nature'] . ':<br /> ' . $lang_item['res_frost'] . ':<br /> ' . $lang_item['res_shadow'] . ': </div> <div class="gradient_pp"> ' . $char['resHoly'] . '<br /> ' . $char['resArcane'] . '<br /> ' . $char['resFire'] . '<br /> ' . $char['resNature'] . '<br /> ' . $char['resFrost'] . '<br /> ' . $char['resShadow'] . ' </div> </td> <td width="1%">'; if ($equiped_items[6][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_BELT . '" target="_blank"> <img src="' . $equiped_items[6][1] . '" class="' . $equiped_items[6][2] . '" alt="Belt" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_waist.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> </tr> <tr> <td width="1%">'; if ($equiped_items[3][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_SHOULDER . '" target="_blank"> <img src="' . $equiped_items[3][1] . '" class="' . $equiped_items[3][2] . '" alt="Shoulder" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_shoulder.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> <td width="1%">'; if ($equiped_items[7][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_LEGS . '" target="_blank"> <img src="' . $equiped_items[7][1] . '" class="' . $equiped_items[7][2] . '" alt="Legs" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_legs.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> </tr> <tr> <td width="1%">'; if ($equiped_items[15][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_BACK . '" target="_blank"> <img src="' . $equiped_items[15][1] . '" class="' . $equiped_items[15][2] . '" alt="Back" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_chest_back.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> <td width="1%">'; if ($equiped_items[8][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_FEET . '" target="_blank"> <img src="' . $equiped_items[8][1] . '" class="' . $equiped_items[8][2] . '" alt="Feet" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_feet.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> </tr> <tr> <td width="1%">'; if ($equiped_items[5][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_CHEST . '" target="_blank"> <img src="' . $equiped_items[5][1] . '" class="' . $equiped_items[5][2] . '" alt="Chest" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_chest_back.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> <td class="half_line" colspan="2" rowspan="2" align="center" width="50%"> <div class="gradient_p"> ' . $lang_char['melee_d'] . ':<br /> ' . $lang_char['melee_ap'] . ':<br /> ' . $lang_char['melee_hit'] . ':<br /> ' . $lang_char['melee_crit'] . ':<br /> ' . $lang_char['expertise'] . ':<br /> </div> <div class="gradient_pp"> ' . $mindamage . '-' . $maxdamage . '<br /> ' . $char['attackPower'] . '<br /> ' . $char_data[CHAR_DATA_OFFSET_MELEE_HIT] . '<br /> ' . $crit . '%<br /> ' . $expertise . '<br /> </div> </td> <td class="half_line" colspan="2" rowspan="2" align="center" width="50%"> <div class="gradient_p"> ' . $lang_char['spell_d'] . ':<br /> ' . $lang_char['spell_heal'] . ':<br /> ' . $lang_char['spell_hit'] . ':<br /> ' . $lang_char['spell_crit'] . ':<br /> ' . $lang_char['spell_haste'] . ' </div> <div class="gradient_pp"> ' . $spell_damage . '<br /> ' . $char_data[CHAR_DATA_OFFSET_SPELL_HEAL] . '<br /> ' . $char_data[CHAR_DATA_OFFSET_SPELL_HIT] . '<br /> ' . $spell_crit . '%<br /> ' . $char_data[CHAR_DATA_OFFSET_SPELL_HASTE_RATING] . ' </div> </td> <td width="1%">'; if ($equiped_items[11][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_FINGER1 . '" target="_blank"> <img src="' . $equiped_items[11][1] . '" class="' . $equiped_items[11][2] . '" alt="Finger1" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_finger.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> </tr> <tr> <td width="1%">'; if ($equiped_items[4][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_SHIRT . '" target="_blank"> <img src="' . $equiped_items[4][1] . '" class="' . $equiped_items[4][2] . '" alt="Shirt" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_shirt.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> <td width="1%">'; if ($equiped_items[12][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_FINGER2 . '" target="_blank"> <img src="' . $equiped_items[12][1] . '" class="' . $equiped_items[12][2] . '" alt="Finger2" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_finger.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> </tr> <tr> <td width="1%">'; if ($equiped_items[19][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_TABARD . '" target="_blank"> <img src="' . $equiped_items[19][1] . '" class="' . $equiped_items[19][2] . '" alt="Tabard" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_tabard.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> <td class="half_line" colspan="2" rowspan="2" align="center" width="50%"> <div class="gradient_p"> ' . $lang_char['dodge'] . ':<br /> ' . $lang_char['parry'] . ':<br /> ' . $lang_char['block'] . ':<br /> ' . $lang_char['resilience'] . ':<br /> </div> <div class="gradient_pp"> ' . $dodge . '%<br /> ' . $parry . '%<br /> ' . $block . '%<br /> ' . $char_data[CHAR_DATA_OFFSET_RESILIENCE] . '<br /> </div> </td> <td class="half_line" colspan="2" rowspan="2" align="center" width="50%"> <div class="gradient_p"> ' . $lang_char['ranged_d'] . ':<br /> ' . $lang_char['ranged_ap'] . ':<br /> ' . $lang_char['ranged_hit'] . ':<br /> ' . $lang_char['ranged_crit'] . ':<br /> </div> <div class="gradient_pp"> ' . $minrangeddamage . '-' . $maxrangeddamage . '<br /> ' . $char['rangedAttackPower'] . '<br /> ' . $char_data[CHAR_DATA_OFFSET_RANGE_HIT] . '<br /> ' . $ranged_crit . '%<br /> </div> </td> <td width="1%">'; if ($equiped_items[13][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_TRINKET1 . '" target="_blank"> <img src="' . $equiped_items[13][1] . '" class="' . $equiped_items[13][2] . '" alt="Trinket1" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_trinket.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> </tr> <tr> <td width="1%">'; if ($equiped_items[9][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_WRIST . '" target="_blank"> <img src="' . $equiped_items[9][1] . '" class="' . $equiped_items[9][2] . '" alt="Wrist" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_wrist.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> <td width="1%">'; if ($equiped_items[14][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_TRINKET2 . '" target="_blank"> <img src="' . $equiped_items[14][1] . '" class="' . $equiped_items[14][2] . '" alt="Trinket2" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_trinket.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> </tr> <tr> <td></td> <td width="15%">'; if ($equiped_items[16][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_MAIN_HAND . '" target="_blank"> <img src="' . $equiped_items[16][1] . '" class="' . $equiped_items[16][2] . '" alt="MainHand" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_main_hand.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> <td width="15%">'; if ($equiped_items[17][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_OFF_HAND . '" target="_blank"> <img src="' . $equiped_items[17][1] . '" class="' . $equiped_items[17][2] . '" alt="OffHand" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_off_hand.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> <td width="15%">'; if ($equiped_items[18][1]) { $output .= ' <a style="padding:2px;" href="' . $item_datasite . $EQU_RANGED . '" target="_blank"> <img src="' . $equiped_items[18][1] . '" class="' . $equiped_items[18][2] . '" alt="Ranged" /> </a>'; } else { $output .= ' <img src="img/INV/INV_empty_ranged.png" class="icon_border_0" alt="empty" />'; } $output .= ' </td> <td width="15%"></td> <td></td> </tr>'; if ($user_lvl > $owner_gmlvl || $owner_name === $user_name) { //total time played $tot_time = $char['totaltime']; $tot_days = (int) ($tot_time / 86400); $tot_time = $tot_time - $tot_days * 86400; $total_hours = (int) ($tot_time / 3600); $tot_time = $tot_time - $total_hours * 3600; $total_min = (int) ($tot_time / 60); $output .= ' <tr> <td colspan="6"> ' . $lang_char['tot_paly_time'] . ': ' . $tot_days . ' ' . $lang_char['days'] . ' ' . $total_hours . ' ' . $lang_char['hours'] . ' ' . $total_min . ' ' . $lang_char['min'] . ' </td> </tr>'; } $output .= ' </table> </div> <br /> </div> <br />'; require_once 'core/char/char_footer.php'; $output .= ' <br /> </center>'; } else { error($lang_char['no_permission']); } } else { error($lang_char['no_char_found']); } }
function char_spell(&$sqlr, &$sqlc) { global $output, $lang_global, $lang_char, $realm_id, $characters_db, $mmfpm_db, $action_permission, $user_lvl, $user_name, $spell_datasite, $itemperpage; wowhead_tt(); require_once 'core/char/char_security.php'; $start = isset($_GET['start']) ? $sqlc->quote_smart($_GET['start']) : 0; if (is_numeric($start)) { } else { $start = 0; } $result = $sqlc->query('SELECT account, name, race, class, level, gender FROM characters WHERE guid = ' . $id . ' LIMIT 1'); if ($sqlc->num_rows($result)) { $char = $sqlc->fetch_assoc($result); $owner_acc_id = $sqlc->result($result, 0, 'account'); $result = $sqlr->query('SELECT `username`, `gmlevel` FROM `account` LEFT JOIN `account_access` ON `account`.`id`=`account_access`.`id` WHERE `account`.`id` = ' . $owner_acc_id . ' ORDER BY `gmlevel` DESC LIMIT 1'); $owner_name = $sqlr->result($result, 0, 'username'); $owner_gmlvl = $sqlr->result($result, 0, 'gmlevel'); if (empty($owner_gmlvl)) { $owner_gmlvl = 0; } if ($user_lvl > $owner_gmlvl || $owner_name === $user_name) { $all_record = $sqlc->result($sqlc->query('SELECT count(spell) FROM character_spell WHERE guid = ' . $id . ' and active = 1'), 0); $result = $sqlc->query('SELECT spell FROM character_spell WHERE guid = ' . $id . ' and active = 1 order by spell ASC LIMIT ' . $start . ', ' . $itemperpage . ''); $output .= ' <center> <div id="tab_content"> <h1>' . $lang_char['spells'] . '</h1> <br />'; require_once 'core/char/char_header.php'; $output .= ' <br /><br />'; if ($sqlc->num_rows($result)) { $output .= ' <table class="lined" style="width: 550px;"> <tr align="right"> <td colspan="4">'; $output .= generate_pagination('char_spell.php?id=' . $id . '&realm=' . $realmid . '&start=' . $start . '', $all_record, $itemperpage, $start); $output .= ' </td> </tr> <tr> <th>' . $lang_char['icon'] . '</th> <th>' . $lang_char['name'] . '</th> <th>' . $lang_char['icon'] . '</th> <th>' . $lang_char['name'] . '</th> </tr>'; $sqlm = new SQL(); $sqlm->connect($mmfpm_db['addr'], $mmfpm_db['user'], $mmfpm_db['pass'], $mmfpm_db['name']); while ($spell = $sqlc->fetch_assoc($result)) { $output .= ' <tr> <td><a href="' . $spell_datasite . $spell['spell'] . '"><img src="' . spell_get_icon($spell['spell'], $sqlm) . '" class="icon_border_0" /></a></td> <td align="left"><a href="' . $spell_datasite . $spell['spell'] . '">' . spell_get_name($spell['spell'], $sqlm) . '</a></td>'; if ($spell = $sqlc->fetch_assoc($result)) { $output .= ' <td><a href="' . $spell_datasite . $spell['spell'] . '"><img src="' . spell_get_icon($spell['spell'], $sqlm) . '" class="icon_border_0" /></a></td> <td align="left"><a href="' . $spell_datasite . $spell['spell'] . '">' . spell_get_name($spell['spell'], $sqlm) . '</a></td> </tr>'; } else { $output .= ' <td></td> <td></td> </tr>'; } } $output .= ' <tr align="right"> <td colspan="4">'; $output .= generate_pagination('char_spell.php?id=' . $id . '&realm=' . $realmid . '&start=' . $start . '', $all_record, $itemperpage, $start); $output .= ' </td> </tr> </table>'; } //---------------Page Specific Data Ends here---------------------------- //---------------Character Tabs Footer----------------------------------- $output .= ' </div> </div> <br />'; require_once 'core/char/char_footer.php'; $output .= ' <br /> </center> <!-- end of char_spell.php -->'; } else { error($lang_char['no_permission']); } } else { error($lang_char['no_char_found']); } }
function char_mail(&$sqlr, &$sqlc) { global $output, $lang_global, $lang_char, $lang_mail, $realm_id, $realm_db, $mmfpm_db, $characters_db, $action_permission, $user_lvl, $user_name, $item_datasite, $itemperpage; // this page uses wowhead tooltops wowhead_tt(); //==========================$_GET and SECURE================================= // id and multi realm security to prevent sql injection require_once './include/char/include/char_multi_realm_security.php'; $start = isset($_GET['start']) ? $sqlc->quote_smart($_GET['start']) : 0; if (is_numeric($start)) { } else { $start = 0; } $order_by = isset($_GET['order_by']) ? $sqlc->quote_smart($_GET['order_by']) : 'id'; if (preg_match('/^[_[:lower:]]{1,12}$/', $order_by)) { } else { $order_by = 'id'; } $dir = isset($_GET['dir']) ? $sqlc->quote_smart($_GET['dir']) : 1; if (preg_match('/^[01]{1}$/', $dir)) { } else { $dir = 1; } $order_dir = $dir ? 'ASC' : 'DESC'; $dir = $dir ? 0 : 1; //==========================$_GET and SECURE end============================= // getting character data from database $result = $sqlc->query(' SELECT account, name, race, class, gender, level FROM characters WHERE guid = ' . $id . ' LIMIT 1'); // no point going further if character does not exist if ($sqlc->num_rows($result)) { $char = $sqlc->fetch_assoc($result); // we get user permissions first $owner_acc_id = $sqlc->result($result, 0, 'account'); $result = $sqlr->query(' SELECT gmlevel, username FROM account WHERE id = ' . $char['account'] . ''); $owner_gmlvl = $sqlr->result($result, 0, 'gmlevel'); $owner_name = $sqlr->result($result, 0, 'username'); // check user permission if ($user_lvl > $owner_gmlvl || $owner_name === $user_name) { // character sub header $output .= ' <center> <div id="tab_content"> <h1>' . $lang_char['mail'] . '</h1> <br />'; // character menu tab require_once './include/char/include/char_header.php'; // character info require_once './include/char/include/char_info.php'; //---------------Page Specific Data Starts Here-------------------------- $output .= ' <div id="tab_content2"> <table class="lined" style="width: 100%">'; $query = $sqlc->query(' SELECT a.id as id, a.messageType as messagetype, a.sender as sender, a.subject as subject, a.body as body, a.has_items as hasitems, a.money as money, a.cod as cod, a.checked as checked, b.item_template as itemtemplate FROM mail a INNER JOIN mail_items b ON a.id = b.mail_id WHERE a.receiver = ' . $id . ' LIMIT ' . $start . ', ' . $itemperpage . ''); $total_mail = $sqlc->result($sqlc->query(' SELECT count(*) FROM mail WHERE receiver= ' . $id . ''), 0); $output .= ' <tr> <td align="left"> Total Mails: ' . $total_mail . ' </td> <td align="right" width="45%">'; $output .= generate_pagination('char_mail.php?start=' . $start . '&order_by=' . $order_by . '&dir=' . ($dir ? 0 : 1), $total_mail, $itemperpage, $start); $output .= ' </td> </tr> </table> <table class="lined" style="width: 100%"> <tr> <th width="5%">' . $lang_mail['mail_type'] . '</th> <th width="10%">' . $lang_mail['sender'] . '</th> <th width="15%">' . $lang_mail['subject'] . '</th> <th width="5%">' . $lang_mail['has_items'] . '</th> <th width="25%">' . $lang_mail['text'] . '</th> <th width="20%">' . $lang_mail['money'] . '</th> <th width="5%">' . $lang_mail['checked'] . '</th> </tr>'; while ($mail = $sqlc->fetch_assoc($query)) { $output .= ' <tr valign=top> <td>' . get_mail_source($mail['messagetype']) . '</td> <td><a href="char.php?id=' . $mail['sender'] . '">' . get_char_name($mail['sender']) . '</a></td> <td>' . $mail['subject'] . '</td> <td> <a style="padding:2px;" href="' . $item_datasite . $mail['itemtemplate'] . '" target="_blank"> <img class="bag_icon" src="' . get_item_icon($mail['itemtemplate'], $sqlm) . '" alt="" /> </a> </td> <td>' . $mail['body'] . '</td> <td> ' . substr($mail['money'], 0, -4) . '<img src="img/gold.gif" alt="" align="middle" /> ' . substr($mail['money'], -4, -2) . '<img src="img/silver.gif" alt="" align="middle" /> ' . substr($mail['money'], -2) . '<img src="img/copper.gif" alt="" align="middle" /> </td> <td>' . get_check_state($mail['checked']) . '</td> </tr>'; } $output .= ' </table> </div> </div> <br />'; //---------------Page Specific Data Ends here---------------------------- // character sub footer require_once './include/char/include/char_ footer.php'; $output .= ' <br /> </center>'; } else { error($lang_char['no_permission']); } } else { error($lang_char['no_char_found']); } }
function show_reward_item(&$sqlm, &$sqlw) { global $output, $lang_global, $lang_rewards, $mmfpm_db, $world_db, $realm_id, $action_permission, $user_lvl, $item_datasite; // this page uses wowhead tooltops wowhead_tt(); $output .= ' <center> <div id="tab_content"> <div id="tab"> <ul> <li><a href="rewards.php">INFO</a></li> <li><a href="rewards.php?action=char_select">SELECT CHAR</a></li> <li><a href="rewards.php?action=show_reward_gold">GOLD</a></li> <li id="selected"><a href="rewards.php?action=show_reward_item">ITEM</a></li> </ul> </div> <div id="tab_content2"> <table class="lined" style="width: 450px;"> <tr>'; if ($user_lvl >= $action_permission['delete']) { $output .= ' <th width="1%">' . $lang_global['delete'] . '</th> <th width="1%">' . $lang_global['edit'] . '</th>'; } $output .= ' <th width="15%">item</th> <th width="69%">name</th> <th width="10%">quantity</th> <th width="10%">points</th> </tr>'; // main data that we need for this page $sqlm = new SQL(); $sqlm->connect($mmfpm_db['addr'], $mmfpm_db['user'], $mmfpm_db['pass'], $mmfpm_db['name']); $result = $sqlm->query('SELECT item, quantity, points FROM mm_reward_item'); while ($items = $sqlm->fetch_assoc($result)) { $output .= ' <tr valign="middle">'; if ($user_lvl >= $action_permission['delete']) { $output .= ' <td><a href="rewards.php?action=delete_reward_item&item=' . $items['item'] . '"><img src="img/aff_cross.png" alt="" /></a></td> <td><a href="rewards.php?action=edit_reward_item&item=' . $items['item'] . '"><img src="img/edit.png" alt="" /></a></td>'; } $output .= ' <td> <a style="padding:2px;" href="' . $item_datasite . $items['item'] . '" target="_blank"> <img src="' . get_item_icon($items['item'], $sqlm, $sqlw) . '" class="' . get_item_border($items['item'], $sqlw) . '" alt="' . $items['item'] . '" /> </a> </td> <td> ' . get_item_name($items['item'], $sqlw) . ' </td> <td> ' . $items['quantity'] . ' </td> <td> ' . $items['points'] . ' </td> </tr>'; } $output .= ' </table> </div> </div> <br />'; $output .= ' <table class="hidden"> <tr> <td>'; if ($user_lvl >= $action_permission['insert']) { makebutton('Add Item', 'rewards.php?action=add_reward_item', 130); $output .= ' </td>'; } $output .= ' </table> </center>'; unset($items); }
function char_spell(&$sqlr, &$sqlc) { global $output, $lang_global, $lang_char, $realm_id, $characters_db, $mmfpm_db, $action_permission, $user_lvl, $user_name, $spell_datasite, $itemperpage; wowhead_tt(); if (empty($_GET['id'])) { error($lang_global['empty_fields']); } if (empty($_GET['realm'])) { $realmid = $realm_id; } else { $realmid = $sqlr->quote_smart($_GET['realm']); if (is_numeric($realmid)) { $sqlc->connect($characters_db[$realmid]['addr'], $characters_db[$realmid]['user'], $characters_db[$realmid]['pass'], $characters_db[$realmid]['name']); } else { $realmid = $realm_id; } } $id = $sqlc->quote_smart($_GET['id']); if (is_numeric($id)) { } else { $id = 0; } $start = isset($_GET['start']) ? $sqlc->quote_smart($_GET['start']) : 0; if (is_numeric($start)) { } else { $start = 0; } $result = $sqlc->query('SELECT account, name, race, class, level, gender FROM characters WHERE guid = ' . $id . ' LIMIT 1'); if ($sqlc->num_rows($result)) { $char = $sqlc->fetch_assoc($result); $owner_acc_id = $sqlc->result($result, 0, 'account'); $result = $sqlr->query('SELECT gmlevel, username FROM account WHERE id = ' . $char['account'] . ''); $owner_gmlvl = $sqlr->result($result, 0, 'gmlevel'); $owner_name = $sqlr->result($result, 0, 'username'); if ($user_lvl > $owner_gmlvl || $owner_name === $user_name) { $all_record = $sqlc->result($sqlc->query('SELECT count(spell) FROM character_spell WHERE guid = ' . $id . ' and active = 1'), 0); $result = $sqlc->query('SELECT spell FROM character_spell WHERE guid = ' . $id . ' and active = 1 order by spell ASC LIMIT ' . $start . ', ' . $itemperpage . ''); $output .= ' <center> <div id="tab_content"> <div id="tab"> <ul> <li><a href="char.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['char_sheet'] . '</a></li> <li><a href="char_inv.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['inventory'] . '</a></li> <li><a href="char_extra.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['extra'] . '</a></li> ' . ($char['level'] < 10 ? '' : '<li><a href="char_talent.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['talents'] . '</a></li>') . ' <li><a href="char_achieve.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['achievements'] . '</a></li> <li><a href="char_rep.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['reputation'] . '</a></li> <li><a href="char_skill.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['skills'] . '</a></li> <li><a href="char_quest.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['quests'] . '</a></li>'; if (char_get_class_name($char['class']) === 'Hunter') { $output .= ' <li><a href="char_pets.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['pets'] . '</a></li>'; } $output .= ' <li><a href="char_friends.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['friends'] . '</a></li> <li><a href="char_mail.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['mail'] . '</a></li> </ul> <ul>'; // selected char tab at last $output .= ' <li id="selected"><a href="char_spell.php?id=' . $id . '&realm=' . $realmid . '">' . $lang_char['spells'] . '</a></li>'; $output .= ' </ul> </div> <div id="tab_content2"> <font class="bold"> ' . htmlentities($char['name']) . ' - <img src="img/c_icons/' . $char['race'] . '-' . $char['gender'] . '.gif" onmousemove="toolTip(\'' . char_get_race_name($char['race']) . '\', \'item_tooltip\')" onmouseout="toolTip()" alt="" /> <img src="img/c_icons/' . $char['class'] . '.gif" onmousemove="toolTip(\'' . char_get_class_name($char['class']) . '\',\'item_tooltip\')" onmouseout="toolTip()" alt="" /> - lvl ' . char_get_level_color($char['level']) . ' </font> <br /><br />'; if ($sqlc->num_rows($result)) { $output .= ' <table class="lined" style="width: 550px;"> <tr align="right"> <td colspan="4">'; $output .= generate_pagination('char_spell.php?id=' . $id . '&realm=' . $realmid . '&start=' . $start . '', $all_record, $itemperpage, $start); $output .= ' </td> </tr> <tr> <th>' . $lang_char['icon'] . '</th> <th>' . $lang_char['name'] . '</th> <th>' . $lang_char['icon'] . '</th> <th>' . $lang_char['name'] . '</th> </tr>'; $sqlm = new SQL(); $sqlm->connect($mmfpm_db['addr'], $mmfpm_db['user'], $mmfpm_db['pass'], $mmfpm_db['name']); while ($spell = $sqlc->fetch_assoc($result)) { $output .= ' <tr> <td><a href="' . $spell_datasite . $spell['spell'] . '"><img src="' . spell_get_icon($spell['spell'], $sqlm) . '" class="icon_border_0" /></a></td> <td align="left"><a href="' . $spell_datasite . $spell['spell'] . '">' . spell_get_name($spell['spell'], $sqlm) . '</a></td>'; if ($spell = $sqlc->fetch_assoc($result)) { $output .= ' <td><a href="' . $spell_datasite . $spell['spell'] . '"><img src="' . spell_get_icon($spell['spell'], $sqlm) . '" class="icon_border_0" /></a></td> <td align="left"><a href="' . $spell_datasite . $spell['spell'] . '">' . spell_get_name($spell['spell'], $sqlm) . '</a></td> </tr>'; } else { $output .= ' <td></td> <td></td> </tr>'; } } $output .= ' <tr align="right"> <td colspan="4">'; $output .= generate_pagination('char_spell.php?id=' . $id . '&realm=' . $realmid . '&start=' . $start . '', $all_record, $itemperpage, $start); $output .= ' </td> </tr> </table>'; } //---------------Page Specific Data Ends here---------------------------- //---------------Character Tabs Footer----------------------------------- $output .= ' </div> </div> <br /> <table class="hidden"> <tr> <td>'; // button to user account page, user account page has own security makebutton($lang_char['chars_acc'], 'user.php?action=edit_user&id=' . $owner_acc_id . '', 130); $output .= ' </td> <td>'; // only higher level GM with delete access can edit character // character edit allows removal of character items, so delete permission is needed if ($user_lvl > $owner_gmlvl && $user_lvl >= $action_permission['delete']) { makebutton($lang_char['edit_button'], 'char_edit.php?id=' . $id . '&realm=' . $realmid . '', 130); $output .= ' </td> <td>'; } // only higher level GM with delete access, or character owner can delete character if ($user_lvl > $owner_gmlvl && $user_lvl >= $action_permission['delete'] || $owner_name === $user_name) { makebutton($lang_char['del_char'], 'char_list.php?action=del_char_form&check%5B%5D=' . $id . '" type="wrn', 130); $output .= ' </td> <td>'; } // only GM with update permission can send mail, mail can send items, so update permission is needed if ($user_lvl >= $action_permission['update']) { makebutton($lang_char['send_mail'], 'mail.php?type=ingame_mail&to=' . $char['name'] . '', 130); $output .= ' </td> <td>'; } makebutton($lang_global['back'], 'javascript:window.history.back()" type="def', 130); $output .= ' </td> </tr> </table> <br /> </center> <!-- end of char_spell.php -->'; } else { error($lang_char['no_permission']); } } else { error($lang_char['no_char_found']); } }