function search() { global $lang_global, $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%\">ID</th>\r\n <th width=\"5%\">Source</th>\r\n <th width=\"10%\">Sender</th>\r\n <th width=\"10%\">Receiver</th>\r\n <th width=\"15%\">Subject</th>\r\n <th width=\"5%\">Has Items</th>\r\n <th width=\"25%\">Text</th>\r\n <th width=\"15%\">Money</th>\r\n <th width=\"5%\">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 del_acc($acc_id) { global $characters_db, $realm_db, $user_lvl, $user_id, $tab_del_user_realmd, $tab_del_user_char, $tab_del_user_characters, $tab_del_pet; $del_char = 0; $sqlc = new SQL(); $sqlr = new SQL(); $sqlr->connect($realm_db['addr'], $realm_db['user'], $realm_db['pass'], $realm_db['name']); $query = $sqlr->query('SELECT `account`.`online`, `account_access`.`gmlevel` FROM `account` LEFT JOIN `account_access` ON `account`.`id`=`account_access`.`id` WHERE `account`.`id` = ' . $acc_id . ''); $gmlevel = $sqlr->result($query, 0, 'gmlevel'); if ($user_lvl > $gmlevel || $acc_id == $user_id) { if ($sqlr->result($query, 0, 'online')) { } else { foreach ($characters_db as $db) { $sqlc->connect($db['addr'], $db['user'], $db['pass'], $db['name']); $result = $sqlc->query('SELECT guid FROM characters WHERE account = ' . $acc_id . ''); while ($row = $sqlc->fetch_assoc($result)) { //Delete pet aura ,spells and cooldowns foreach ($tab_del_pet as $value) { $sqlc->query('DELETE FROM ' . $value[0] . ' WHERE ' . $value[1] . ' IN (SELECT id FROM character_pet WHERE owner IN (SELECT guid FROM characters WHERE guid = ' . $row['guid'] . '))'); } foreach ($tab_del_user_characters as $value) { $sqlc->query('DELETE FROM ' . $value[0] . ' WHERE ' . $value[1] . ' = ' . $row['guid'] . ''); } $del_char++; } $sqlc->query('DELETE FROM account_data WHERE account = ' . $acc_id . ''); } foreach ($tab_del_user_realmd as $value) { $sqlr->query('DELETE FROM ' . $value[0] . ' WHERE ' . $value[1] . ' = ' . $acc_id . ''); } if ($sqlr->affected_rows()) { return array(true, $del_char); } } } return array(false, $del_char); }
function get_realm_name($realm_id) { global $realm_db; $sqlr = new SQL(); $sqlr->connect($realm_db['addr'], $realm_db['user'], $realm_db['pass'], $realm_db['name']); $result = $sqlr->query("SELECT name FROM `realmlist` WHERE id = '{$realm_id}'"); $realm_name = $sqlr->result($result, 0); return $realm_name; }
function get_char_name($id) { global $characters_db, $realm_id; if ($id) { $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']); $result = $sqlc->query("SELECT `name` FROM `characters` WHERE `guid` = '{$id}'"); $player_name = $sqlc->result($result, 0); return $player_name; } else { return NULL; } }
function get_mail_text($id) { global $characters_db, $realm_id; if ($id) { $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']); $result = $sqlc->query("SELECT `body` FROM `mail` WHERE `id` = '{$id}'"); $text_subject = $sqlc->result($result, 0); return $text_subject; } else { return NULL; } }
function search() { global $lang_global, $lang_item, $lang_item_edit, $output, $mmfpm_db, $world_db, $realm_id, $action_permission, $user_lvl; valid_login($action_permission['read']); $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']); $sqlm = new SQL(); $sqlm->connect($mmfpm_db['addr'], $mmfpm_db['user'], $mmfpm_db['pass'], $mmfpm_db['name']); $result = $sqlw->query("SELECT count(*) FROM item_template"); $tot_items = $sqlw->result($result, 0); $output .= "\n <center>\n <fieldset class=\"full_frame\">\n <legend>{$lang_item_edit['search_item']}</legend><br />\n <form action=\"item.php?action=do_search&error=2\" method=\"post\" name=\"form\">\n <table class=\"hidden\">\n <tr>\n <td align=\"right\">{$lang_item_edit['entry']}:</td>\n <td align=\"right\"><input type=\"text\" size=\"6\" maxlength=\"6\" name=\"entry\" /></td>\n <td align=\"right\">{$lang_item_edit['item_name']}:</td>\n <td align=\"right\" colspan=\"3\"><input type=\"text\" size=\"24\" maxlength=\"35\" name=\"name\" /></td>\n <td align=\"right\">{$lang_item_edit['model_id']}:</td>\n <td align=\"right\"><input type=\"text\" size=\"6\" maxlength=\"6\" name=\"displayid\" /></td>\n </tr>\n <tr>\n <td align=\"right\" width=\"10%\">{$lang_item_edit['class']}:</td>\n <td align=\"right\" width=\"10%\">\n <select name=\"class\">\n <option value=\"-1\">{$lang_item_edit['all']}</option>\n <option value=\"0\">{$lang_item['consumable']}</option>\n <option value=\"1\">{$lang_item['bag']}</option>\n <option value=\"2\">{$lang_item['weapon']}</option>\n <option value=\"4\">{$lang_item['armor']}</option>\n <option value=\"5\">{$lang_item['reagent']}</option>\n <option value=\"6\">{$lang_item['projectile']}</option>\n <option value=\"7\">{$lang_item['trade_goods']}</option>\n <option value=\"9\">{$lang_item['recipe']}</option>\n <option value=\"11\">{$lang_item['quiver']}</option>\n <option value=\"12\">{$lang_item['quest']}</option>\n <option value=\"13\">{$lang_item['key']}</option>\n <option value=\"14\">{$lang_item['permanent']}</option>\n <option value=\"15\">{$lang_item['misc_short']}</option>\n </select>\n </td>\n <td align=\"right\" width=\"10%\">{$lang_item_edit['quality']}:</td>\n <td align=\"right\" width=\"10%\">\n <select name=\"Quality\">\n <option value=\"-1\">{$lang_item_edit['all']}</option>\n <option value=\"0\">{$lang_item['poor']}</option>\n <option value=\"1\">{$lang_item['common']}</option>\n <option value=\"2\">{$lang_item['uncommon']}</option>\n <option value=\"3\">{$lang_item['rare']}</option>\n <option value=\"4\">{$lang_item['epic']}</option>\n <option value=\"5\">{$lang_item['legendary']}</option>\n <option value=\"6\">{$lang_item['artifact']}</option>\n </select>\n </td>\n <td align=\"right\" width=\"10%\">{$lang_item_edit['inv_type']}:</td>\n <td align=\"right\" width=\"10%\">\n <select name=\"InventoryType\">\n <option value=\"-1\">{$lang_item_edit['all']}</option>\n <option value=\"1\">{$lang_item['head']}</option>\n <option value=\"2\">{$lang_item['neck']}</option>\n <option value=\"3\">{$lang_item['shoulder']}</option>\n <option value=\"4\">{$lang_item['shirt']}</option>\n <option value=\"5\">{$lang_item['chest']}</option>\n <option value=\"6\">{$lang_item['belt']}</option>\n <option value=\"7\">{$lang_item['legs']}</option>\n <option value=\"8\">{$lang_item['feet']}</option>\n <option value=\"9\">{$lang_item['belt']}</option>\n <option value=\"10\">{$lang_item['gloves']}</option>\n <option value=\"11\">{$lang_item['finger']}</option>\n <option value=\"12\">{$lang_item['trinket']}</option>\n <option value=\"13\">{$lang_item['one_hand']}</option>\n <option value=\"14\">{$lang_item['off_hand']}</option>\n <option value=\"15\">{$lang_item['bow']}</option>\n <option value=\"16\">{$lang_item['back']}</option>\n <option value=\"17\">{$lang_item['two_hand']}</option>\n <option value=\"18\">{$lang_item['bag']}</option>\n <option value=\"19\">{$lang_item['tabard']}</option>\n <option value=\"20\">{$lang_item['robe']}</option>\n <option value=\"21\">{$lang_item['main_hand']}</option>\n <option value=\"22\">{$lang_item['off_misc']}</option>\n <option value=\"23\">{$lang_item['tome']}</option>\n <option value=\"24\">{$lang_item['projectile']}</option>\n <option value=\"25\">{$lang_item['thrown']}</option>\n <option value=\"26\">{$lang_item['rifle']}</option>\n </select>\n </td>\n <td align=\"right\" width=\"10%\">{$lang_item_edit['req_level']}:</td>\n <td align=\"right\" width=\"10%\"><input type=\"text\" size=\"6\" maxlength=\"3\" name=\"RequiredLevel\" /></td>\n </tr>\n <tr>\n <td align=\"right\">{$lang_item_edit['spell_id']} 1:</td>\n <td align=\"right\"><input type=\"text\" size=\"6\" maxlength=\"6\" name=\"spellid_1\" /></td>\n <td align=\"right\">{$lang_item_edit['spell_id']} 2:</td>\n <td align=\"right\"><input type=\"text\" size=\"6\" maxlength=\"6\" name=\"spellid_2\" /></td>\n <td align=\"right\">{$lang_item_edit['spell_id']} 3:</td>\n <td align=\"right\"><input type=\"text\" size=\"6\" maxlength=\"6\" name=\"spellid_3\" /></td>\n <td align=\"right\">{$lang_item_edit['spell_id']} 4:</td>\n <td align=\"right\"><input type=\"text\" size=\"6\" maxlength=\"6\" name=\"spellid_4\" /></td>\n </tr>\n <tr>\n <td align=\"right\">{$lang_item_edit['item_level']}:</td>\n <td align=\"right\"><input type=\"text\" size=\"6\" maxlength=\"6\" name=\"ItemLevel\" /></td>\n <td align=\"right\">{$lang_item_edit['item_set']}:</td>\n <td align=\"right\" colspan=\"3\">\n <select name=\"itemset\">\n <option value=\"\">{$lang_item_edit['all']}</option>"; $itemset_id = $sqlm->query("SELECT `id`, `field_1` FROM `dbc_itemset`"); while ($set = $sqlm->fetch_row($itemset_id)) { $output .= "\n <option value=\"{$set[0]}\">({$set['0']}) {$set[1]}</option>"; } $output .= "\n </select>\n </td>\n <td align=\"right\">{$lang_item_edit['flags']}:</td>\n <td align=\"right\"><input type=\"text\" size=\"6\" maxlength=\"6\" name=\"Flags\" /></td>\n </tr>\n <tr>\n <td align=\"right\">{$lang_item_edit['bonding']}:</td>\n <td align=\"right\" colspan=\"2\">\n <select name=\"bonding\">\n <option value=\"-1\">{$lang_item_edit['all']}</option>\n <option value=\"1\">{$lang_item['bop']}</option>\n <option value=\"2\">{$lang_item['boe']}</option>\n <option value=\"3\">{$lang_item['bou']}</option>\n <option value=\"4\">{$lang_item['quest_item']}</option>\n </select>\n </td>\n <td align=\"right\">{$lang_item_edit['custom_search']}:</td>\n <td align=\"right\" colspan=\"2\"><input type=\"text\" size=\"24\" maxlength=\"512\" name=\"custom_search\" /></td>\n <td align=\"right\" colspan=\"2\">\n </td>\n </tr>\n <tr>\n <td colspan=\"8\">-----------------------------------------------------------------------------------------------------------------------------------------------</td>\n </tr>\n <tr>\n <td align=\"right\"></td>\n <td align=\"right\" colspan=\"4\">"; if ($user_lvl >= $action_permission['insert']) { makebutton($lang_item_edit['add_new_item'], "item.php?action=add_new&error=3", 130); } makebutton($lang_item_edit['search'], "javascript:do_submit()", 130); $output .= "\n </td>\n <td align=\"right\" colspan=\"2\">{$lang_item_edit['tot_items_in_db']}: {$tot_items}</td>\n <td align=\"right\"></td>\n </tr>\n </table>\n </form>\n </fieldset>\n <br /><br />\n </center>\n"; }
function accounts() { global $output, $corem_db, $logon_db, $itemperpage, $core; // we need $core to be set if ($core == 0) { $core = detectcore(); } $sqlm = new SQL(); $sqlm->connect($corem_db["addr"], $corem_db["user"], $corem_db["pass"], $corem_db["name"], $corem_db["encoding"]); $sqll = new SQL(); $sqll->connect($logon_db["addr"], $logon_db["user"], $logon_db["pass"], $logon_db["name"], $logon_db["encoding"]); $start = isset($_GET["start"]) ? $sqll->quote_smart($_GET["start"]) : 0; if (!is_numeric($start)) { $start = 0; } $order_by = isset($_GET["order_by"]) ? $sqll->quote_smart($_GET["order_by"]) : "acct"; if ($order_by == "login") { if ($core == 1) { $order_by = "login"; } else { $order_by = "username"; } } $dir = isset($_GET["dir"]) ? $sqll->quote_smart($_GET["dir"]) : 1; if (!preg_match('/^[01]{1}$/', $dir)) { $dir = 1; } $accts_per_page = isset($_GET["perpage"]) ? $sqll->quote_smart($_GET["perpage"]) : $itemperpage; if (!is_numeric($accts_per_page)) { $accts_per_page = $itemperpage; } $order_dir = $dir ? "ASC" : "DESC"; $dir = $dir ? 0 : 1; $search_value = isset($_GET["search_value"]) ? $sqll->quote_smart($_GET["search_value"]) : ""; $search_by = isset($_GET["search_by"]) ? $sqll->quote_smart($_GET["search_by"]) : ""; if ($core == 1) { $search_menu = array(array("login", "by_name"), array("acct", "by_id"), array("ScreenName", "by_sn"), array("SecurityLevel", "by_sl"), array("WebAdmin", "by_web")); } else { $search_menu = array(array("username", "by_name"), array("id", "by_id"), array("ScreenName", "by_sn"), array("SecurityLevel", "by_sl"), array("WebAdmin", "by_web")); } $search = ""; if ($search_value != "" && $search_by != "") { if ($search_by == "WebAdmin") { $search = "WHERE SecurityLevel>='1073741824'"; } else { $search = "WHERE " . $search_by . " LIKE '%" . $search_value . "%'"; } } if ($core == 1) { $query = "SELECT *, (SecurityLevel & 1073741824) AS WebAdmin\n FROM accounts\n LEFT JOIN `" . $corem_db["name"] . "`.config_accounts ON accounts.login=`" . $corem_db["name"] . "`.config_accounts.Login COLLATE utf8_general_ci\n " . $search . "\n ORDER BY " . $order_by . " " . $order_dir . " LIMIT " . $start . ", " . $accts_per_page; $count_query = "SELECT COUNT(*) FROM accounts\n LEFT JOIN `" . $corem_db["name"] . "`.config_accounts ON accounts.login=`" . $corem_db["name"] . "`.config_accounts.Login COLLATE utf8_general_ci\n " . $search; } else { $query = "SELECT *, id AS acct, username AS login, (SecurityLevel & 1073741824) AS WebAdmin\n FROM account\n LEFT JOIN `" . $corem_db["name"] . "`.config_accounts ON account.username=`" . $corem_db["name"] . "`.config_accounts.Login\n " . $search . "\n ORDER BY " . $order_by . " " . $order_dir . " LIMIT " . $start . ", " . $accts_per_page; $count_query = "SELECT COUNT(*) FROM account\n LEFT JOIN `" . $corem_db["name"] . "`.config_accounts ON account.username=`" . $corem_db["name"] . "`.config_accounts.Login\n " . $search; } $result = $sqll->query($query); $count_result = $sqll->query($count_query); $all_record = $sqll->result($count_result, 0); $accounts_action = 0; if (isset($_GET["editacct"])) { $accounts_action = "edit"; } if (!$accounts_action) { $output .= ' <div class="center" id="admin_accounts_search"> <form action="admin.php" method="get" id="form"> <div> <input type="hidden" name="section" value="accounts" /> </div> <table class="hidden" id="admin_accounts_search_table"> <tr> <td> <input type="text" size="24" maxlength="50" name="search_value" value="' . $search_value . '" /> </td> <td> <select name="search_by">'; foreach ($search_menu as $row) { $output .= ' <option value="' . $row[0] . '"' . ($search_by === $row[0] ? ' selected="selected"' : '') . '>' . lang("admin", $row[1]) . '</option>'; } $output .= ' </select> </td> <td> <input type="submit" name="search" value="' . lang("global", "search") . '" /> </td> </tr> </table> </form>'; $output .= ' <a href="admin.php?section=accounts&order_by=' . $order_by . '&start=' . $start . '&dir=' . ($dir ? 0 : 1) . '&perpage=' . $accts_per_page . '">' . lang("admin", "clearsearch") . '</a> <br /> <br />'; if ($order_by == "username") { $order_by = "login"; } $output .= ' <table class="hidden admin_accounts"> <tr> <td colspan="2" align="left"> ' . lang("admin", "per_page") . ': '; $per_page_choices = array(25, 50, 100, 200); for ($i = 0; $i < count($per_page_choices); $i++) { if ($accts_per_page != $per_page_choices[$i]) { $output .= '<a href="admin.php?section=accounts&order_by=' . $order_by . '&start=' . $start . '&dir=' . ($dir ? 0 : 1) . ($search_value && $search_by ? '&search_by=' . $search_by . '&search_value=' . $search_value . '' : '') . '&perpage=' . $per_page_choices[$i] . '">' . $per_page_choices[$i] . '</a>'; } else { $output .= $per_page_choices[$i]; } if ($i < count($per_page_choices) - 1) { $output .= ', '; } } $output .= ' </td> </tr> <tr> <td align="left">' . lang("admin", "total") . ': ' . $all_record . '</td> <td align="right">'; $output .= generate_pagination('admin.php?section=accounts&order_by=' . $order_by . '&start=' . $start . '&dir=' . ($dir ? 0 : 1) . ($search_value && $search_by ? '&search_by=' . $search_by . '&search_value=' . $search_value . '' : '') . '&perpage=' . $accts_per_page, $all_record, $accts_per_page, $start); $output .= ' </td> </tr> </table> <table class="simple admin_accounts"> <tr> <th style="width: 10%;">' . lang("admin", "edit") . '</th> <th> <a href="admin.php?section=accounts&order_by=acct&start=' . $start . ($search_value && $search_by ? '&search_by=' . $search_by . '&search_value=' . $search_value . '' : '') . '&dir=' . $dir . '&perpage=' . $accts_per_page . '"' . ($order_by == 'acct' ? ' class="' . $order_dir . '"' : '') . '>' . lang("user", "acct") . '</a> </th> <th> <a href="admin.php?section=accounts&order_by=login&start=' . $start . ($search_value && $search_by ? '&search_by=' . $search_by . '&search_value=' . $search_value . '' : '') . '&dir=' . $dir . '&perpage=' . $accts_per_page . '"' . ($order_by == 'login' ? ' class="' . $order_dir . '"' : '') . '>' . lang("admin", "login") . '</a> </th> <th> <a href="admin.php?section=accounts&order_by=ScreenName&start=' . $start . ($search_value && $search_by ? '&search_by=' . $search_by . '&search_value=' . $search_value . '' : '') . '&dir=' . $dir . '&perpage=' . $accts_per_page . '"' . ($order_by == 'ScreenName' ? ' class="' . $order_dir . '"' : '') . '>' . lang("admin", "screenname") . '</a> </th> <th style="width: 20%;"> <a href="admin.php?section=accounts&order_by=SecurityLevel&start=' . $start . ($search_value && $search_by ? '&search_by=' . $search_by . '&search_value=' . $search_value . '' : '') . '&dir=' . $dir . '&perpage=' . $accts_per_page . '"' . ($order_by == 'SecurityLevel' ? ' class="' . $order_dir . '"' : '') . '>' . lang("admin", "seclvl") . '</a> </th> <th style="width: 15%;"> <a href="admin.php?section=accounts&order_by=WebAdmin&start=' . $start . ($search_value && $search_by ? '&search_by=' . $search_by . '&search_value=' . $search_value . '' : '') . '&dir=' . $dir . '&perpage=' . $accts_per_page . '"' . ($order_by == 'WebAdmin' ? ' class="' . $order_dir . '"' : '') . '>' . lang("admin", "acpaccess") . '</a> </th> <th style="width: 15%;"> <a href="admin.php?section=accounts&order_by=TempPassword&start=' . $start . ($search_value && $search_by ? '&search_by=' . $search_by . '&search_value=' . $search_value . '' : '') . '&dir=' . $dir . '&perpage=' . $accts_per_page . '"' . ($order_by == 'TempPassword' ? ' class="' . $order_dir . '"' : '') . '>' . lang("admin", "confirm_account") . '</a> </th> </tr>'; $color = "#EEEEEE"; while ($acct = $sqll->fetch_assoc($result)) { $acct["SecurityLevel"] = isset($acct["SecurityLevel"]) ? $acct["SecurityLevel"] : 0; $acct["WebAdmin"] = isset($acct["WebAdmin"]) ? $acct["WebAdmin"] : 0; $acct["ScreenName"] = isset($acct["ScreenName"]) ? $acct["ScreenName"] : ""; if ($acct["SecurityLevel"] >= 1073741824) { $acct["SecurityLevel"] -= 1073741824; } $sl_query = "SELECT * FROM config_gm_level_names WHERE Security_Level='" . $acct["SecurityLevel"] . "'"; $sl_result = $sqlm->query($sl_query); $sl = $sqlm->fetch_assoc($sl_result); $output .= ' <tr> <td style="background-color:' . $color . '; text-align: center;"> <span> <a href="admin.php?section=accounts&acct=' . $acct["login"] . '&editacct=editaccount"> <img src="img/edit.png" alt="" /> </a> </span> </td> <td style="background-color:' . $color . '; text-align: center;"> <span>' . $acct["acct"] . '</span> </td> <td style="background-color:' . $color . '; text-align: center;"> <span>' . strtolower($acct["login"]) . '</span> </td> <td style="background-color:' . $color . '; text-align: center;"> <span>' . $acct["ScreenName"] . '</span> </td> <td style="background-color:' . $color . '; text-align: center;"> <span>' . $sl["Full_Name"] . ' (' . $acct["SecurityLevel"] . ')</span> </td> <td style="background-color:' . $color . '; text-align: center;"> <span> <img src="img/' . ($acct["WebAdmin"] ? 'up' : 'down') . '.gif" alt="" /> </span> </td> <td style="background-color:' . $color . '; text-align: center;">'; if ($acct["TempPassword"] != "") { $output .= ' <center> <aspanhref="register.php?action=do_activate&key=' . $acct["TempPassword"] . '&redirect=1" onmouseover="oldtoolTip(\'' . lang("admin", "confirm_account_tip") . '\', \'info_tooltip\')" onmouseout="oldtoolTip()"> <img src="img/aff_tick.png" alt="" /> </a> </span>'; } else { $output .= ' '; } $output .= ' </td> </tr>'; $color = $color == "#EEEEEE" ? "#FFFFFF" : "#EEEEEE"; } $output .= ' </table> </div>'; } else { if (isset($_GET["acct"])) { $acct = $sqlm->quote_smart($_GET["acct"]); } else { redirect("admin.php?section=accounts&error=1"); } if ($core == 1) { $logon_acct = $sqll->fetch_assoc($sqll->query("SELECT * FROM accounts WHERE login='******'")); } else { $logon_acct = $sqll->fetch_assoc($sqll->query("SELECT *, username AS login FROM account WHERE username='******'")); } $sl_query = "SELECT * FROM config_gm_level_names"; $sl_result = $sqlm->query($sl_query); $sn_acct = $sqlm->fetch_assoc($sqlm->query("SELECT * FROM config_accounts WHERE Login='******'")); $sec_level_only = $sn_acct["SecurityLevel"] ? $sn_acct["SecurityLevel"] : 0; if ($sec_level_only >= 1073741824) { $sec_level_only -= 1073741824; } $web_admin_only = $sn_acct["SecurityLevel"] & 1073741824; $output .= ' <div id="admin_edit_account"> <form action="admin.php" method="get" id="form"> <div> <input type="hidden" name="section" value="accounts" /> <input type="hidden" name="action" value="saveacct" /> </div> <fieldset> <table> <tr> <td style="width: 50%;">' . lang("admin", "login") . ': </td> <td> <input type="text" readonly="readonly" name="login" value="' . $logon_acct["login"] . '" /> </td> </tr> <tr> <td>' . lang("admin", "screenname") . ': </td> <td> <input type="text" name="sn" value="' . $sn_acct["ScreenName"] . '" /> </td> </tr> <tr> <td>' . lang("admin", "seclvl") . ': </td> <td> <select name="sec">'; while ($row = $sqlm->fetch_assoc($sl_result)) { $output .= ' <option value="' . $row["Security_Level"] . '" ' . ($sec_level_only == $row["Security_Level"] ? 'selected="selected"' : '') . '>' . $row["Full_Name"] . ' (' . $row["Security_Level"] . ')</option>'; } $output .= ' </select> </td> </tr> <tr> <td class="help"> <a href="#" onmouseover="oldtoolTip(\'' . lang("admin", "acpaccess_tip") . '\', \'info_tooltip\')" onmouseout="oldtoolTip()">' . lang("admin", "acpaccess") . '</a>: </td> <td> <input type="checkbox" name="acp" ' . ($web_admin_only ? 'checked="checked"' : '') . ' /> </td> </tr> </table> </fieldset> <div> <input type="submit" name="saveacct" value="' . lang("admin", "save") . '" /> </div> </form> </div>'; } }
function browse_teams() { global $lang_arenateam, $lang_global, $output, $realm_db, $characters_db, $realm_id, $itemperpage, $action_permission, $user_lvl, $user_id; $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']) : "atid"; if (!preg_match("/^[_[:lower:]]{1,17}\$/", $order_by)) { $order_by = "atid"; } $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============================= //==========================Browse/Search CHECK============================== $search_by = ''; $search_value = ''; if (isset($_GET['search_value']) && isset($_GET['search_by'])) { $search_value = $sqlc->quote_smart($_GET['search_value']); $search_by = $sqlc->quote_smart($_GET['search_by']); $search_menu = array('atname', 'leadername', 'atid'); if (!in_array($search_by, $search_menu)) { $search_by = 'atid'; } switch ($search_by) { case "atname": $query = $sqlc->query("SELECT art.`arenateamid` as atid, art.`name` as atname, art.`captainguid` as lguid, art.`type` as attype, cCaptain.`name` as lname, COUNT(atm.`arenateamid`) as tot_chars, art.`rating` as atrating, art.`seasonGames` as atgames, art.`seasonWins` as atwins FROM `arena_team` art\r\n LEFT JOIN `characters` cCaptain on art.`captainguid` = cCaptain.`guid`\r\n RIGHT JOIN `arena_team_member` atm on atm.`arenateamid` = art.`arenateamid`\r\n WHERE art.`name` LIKE '%{$search_value}%' GROUP BY atid ORDER BY {$order_by} {$order_dir} LIMIT {$start}, {$itemperpage}"); $query_1 = $sqlc->query("SELECT count(*) FROM arena_team WHERE arena_team.name LIKE '%{$search_value}%'"); break; case "leadername": $query = $sqlc->query("SELECT art.`arenateamid` as atid, art.`name` as atname, art.`captainguid` as lguid, art.`type` as attype, cCaptain.`name` as lname, COUNT(atm.`arenateamid`) as tot_chars, art.`rating` as atrating, art.`seasonGames` as atgames, art.`seasonWins` as atwins FROM `arena_team` art\r\n LEFT JOIN `characters` cCaptain on art.`captainguid` = cCaptain.`guid`\r\n RIGHT JOIN `arena_team_member` atm on atm.`arenateamid` = art.`arenateamid`\r\n WHERE cCaptain.`name` LIKE '%{$search_value}%' GROUP BY atid ORDER BY {$order_by} {$order_dir} LIMIT {$start}, {$itemperpage}"); $query_1 = $sqlc->query("SELECT count(*) FROM arena_team WHERE arena_team.captainguid in (SELECT guid from characters where name like '%{$search_value}%')"); break; case "atid": $query = $sqlc->query("SELECT art.`arenateamid` as atid, art.`name` as atname, art.`captainguid` as lguid, art.`type` as attype, cCaptain.`name` as lname, COUNT(atm.`arenateamid`) as tot_chars, art.`rating` as atrating, art.`seasonGames` as atgames, art.`seasonWins` as atwins, COUNT(cOnlineCount.`guid`) as arenateam_online\r\n FROM `arena_team` art\r\n LEFT JOIN `characters` cCaptain on art.`captainguid` = cCaptain.`guid`\r\n RIGHT JOIN `arena_team_member` atm on atm.`arenateamid` = art.`arenateamid`\r\n LEFT JOIN (SELECT `guid` FROM `characters` WHERE `online` = 1) cOnlineCount on cOnlineCount.`guid` = atm.`guid`\r\n GROUP BY atid ORDER BY {$order_by} {$order_dir} LIMIT {$start}, {$itemperpage}"); $query_1 = $sqlc->query("SELECT count(*) FROM arena_team arena_team.arenateamid ='{$search_value}'"); break; } } else { $query = $sqlc->query("SELECT arena_team.arenateamid AS atid, arena_team.name AS atname, arena_team.captainguid AS lguid, arena_team.type AS attype, (SELECT NAME FROM `characters` WHERE guid = lguid) AS lname,(SELECT COUNT(*) FROM arena_team_member WHERE arenateamid = atid) AS tot_chars, rating AS atrating, seasonGames AS atgames, seasonWins AS atwins, (SELECT COUNT(*) AS GCNT FROM `arena_team_member`, `characters`, `arena_team` WHERE arena_team.arenateamid = atid AND arena_team_member.arenateamid = arena_team.arenateamid AND arena_team_member.guid = characters.guid AND characters.online = 1) AS arenateam_online FROM arena_team ORDER BY {$order_by} {$order_dir} LIMIT {$start}, {$itemperpage}"); $query_1 = $sqlc->query("SELECT count(*) FROM arena_team"); } $all_record = $sqlc->result($query_1, 0); unset($query_1); $this_page = $sqlc->num_rows($query); //==========================top page navigation starts here==================== $output .= "\r\n <center>\r\n <table class=\"top_hidden\">\r\n <tr>\r\n <td>"; makebutton($lang_global['back'], "javascript:window.history.back()", 130); $search_by && $search_value ? makebutton($lang_arenateam['arenateams'], "arenateam.php", 130) : ($output .= ""); $output .= "\r\n </td>\r\n </tr>\r\n <tr>\r\n <td>\r\n <table class=\"hidden\">\r\n <tr>\r\n <td>\r\n <form action=\"arenateam.php\" method=\"get\" name=\"form\">\r\n <input type=\"hidden\" name=\"error\" value=\"4\" />\r\n <input type=\"text\" size=\"24\" name=\"search_value\" value=\"{$search_value}\"/>\r\n <select name=\"search_by\">\r\n <option value=\"atname\"" . ($search_by == 'atname' ? " selected=\"selected\"" : "") . ">{$lang_arenateam['by_name']}</option>\r\n <option value=\"leadername\"" . ($search_by == 'leadername' ? " selected=\"selected\"" : "") . ">{$lang_arenateam['by_team_leader']}</option>\r\n <option value=\"atid\"" . ($search_by == 'atid' ? " selected=\"selected\"" : "") . ">{$lang_arenateam['by_id']}</option>\r\n </select>\r\n </form>\r\n </td>\r\n <td>"; makebutton($lang_global['search'], "javascript:do_submit()", 80); $output .= "\r\n </td>\r\n </tr>\r\n </table>\r\n </td>\r\n <td align=\"right\">"; $output .= generate_pagination("arenateam.php?order_by={$order_by}" . ($search_value && $search_by ? "&search_by={$search_by}&search_value={$search_value}" : "") . "&dir=" . !$dir, $all_record, $itemperpage, $start); $output .= "\r\n </td>\r\n </tr>\r\n </table>"; //==========================top page navigation ENDS here ===================== $output .= "\r\n <table class=\"lined\">\r\n <tr>\r\n <th width=\"1%\"><a href=\"arenateam.php?order_by=atid&start={$start}" . ($search_value && $search_by ? "&search_by={$search_by}&search_value={$search_value}" : "") . "&dir={$dir}\">" . ($order_by == 'atid' ? "<img src=\"img/arr_" . ($dir ? "up" : "dw") . ".gif\" /> " : "") . "{$lang_arenateam['id']}</a></th>\r\n <th width=\"1%\"><a href=\"arenateam.php?order_by=atname&start={$start}" . ($search_value && $search_by ? "&search_by={$search_by}&search_value={$search_value}" : "") . "&dir={$dir}\">" . ($order_by == 'atname' ? "<img src=\"img/arr_" . ($dir ? "up" : "dw") . ".gif\" /> " : "") . "{$lang_arenateam['arenateam_name']}</a></th>\r\n <th width=\"1%\"><a href=\"arenateam.php?order_by=lname&start={$start}" . ($search_value && $search_by ? "&search_by={$search_by}&search_value={$search_value}" : "") . "&dir={$dir}\">" . ($order_by == 'lname' ? "<img src=\"img/arr_" . ($dir ? "up" : "dw") . ".gif\" /> " : "") . "{$lang_arenateam['captain']}</a></th>\r\n <th width=\"1%\"><a href=\"arenateam.php?order_by=attype&start={$start}" . ($search_value && $search_by ? "&search_by={$search_by}&search_value={$search_value}" : "") . "&dir={$dir}\">" . ($order_by == 'attype' ? "<img src=\"img/arr_" . ($dir ? "up" : "dw") . ".gif\" /> " : "") . "{$lang_arenateam['type']}</a></th>\r\n <th width=\"1%\"><a href=\"arenateam.php?order_by=tot_chars&start={$start}" . ($search_value && $search_by ? "&search_by={$search_by}&search_value={$search_value}" : "") . "&dir={$dir}\">" . ($order_by == 'tot_chars' ? "<img src=\"img/arr_" . ($dir ? "up" : "dw") . ".gif\" /> " : "") . "{$lang_arenateam['members']}</a></th>\r\n <th width=\"1%\"><a href=\"arenateam.php?order_by=arenateam_online&start={$start}" . ($search_value && $search_by ? "&search_by={$search_by}&search_value={$search_value}" : "") . "&dir={$dir}\">" . ($order_by == 'arenateam_online' ? "<img src=\"img/arr_" . ($dir ? "up" : "dw") . ".gif\" /> " : "") . "{$lang_arenateam['arenateam_online']}</a></th>\r\n <th width=\"1%\"><a href=\"arenateam.php?order_by=rating&start={$start}" . ($search_value && $search_by ? "&search_by={$search_by}&search_value={$search_value}" : "") . "&dir={$dir}\">" . ($order_by == 'rating' ? "<img src=\"img/arr_" . ($dir ? "up" : "dw") . ".gif\" /> " : "") . "{$lang_arenateam['rating']}</a></th>\r\n <th width=\"1%\"><a href=\"arenateam.php?order_by=atgames&start={$start}" . ($search_value && $search_by ? "&search_by={$search_by}&search_value={$search_value}" : "") . "&dir={$dir}\">" . ($order_by == 'atgames' ? "<img src=\"img/arr_" . ($dir ? "up" : "dw") . ".gif\" /> " : "") . "{$lang_arenateam['games']}</a></th>\r\n <th width=\"1%\"><a href=\"arenateam.php?order_by=atwins&start={$start}" . ($search_value && $search_by ? "&search_by={$search_by}&search_value={$search_value}" : "") . "&dir={$dir}\">" . ($order_by == 'atwins' ? "<img src=\"img/arr_" . ($dir ? "up" : "dw") . ".gif\" /> " : "") . "{$lang_arenateam['wins']}</a></th>\r\n </tr>"; while ($data = $sqlc->fetch_row($query)) { $gonline = $sqlc->query("SELECT count(*) AS GCNT FROM `arena_team_member`, `characters`, `arena_team` WHERE arena_team.arenateamid = " . $data[0] . " AND arena_team_member.arenateamid = arena_team.arenateamid AND arena_team_member.guid = characters.guid AND characters.online = 1;"); $arenateam_online = $sqlc->result($gonline, "GCNT"); $output .= "\r\n <tr>\r\n <td>{$data['0']}</td>\r\n <td><a href=\"arenateam.php?action=view_team&error=3&id={$data['0']}\">" . htmlentities($data[1]) . "</a></td>\r\n <td><a href=\"char.php?id={$data['2']}\">" . htmlentities($data[4]) . "</a></td>\r\n <td>{$lang_arenateam[$data[3]]}</td>\r\n <td>{$data['5']}</td>\r\n <td>{$arenateam_online}</td>\r\n <td>{$data['6']}</td>\r\n <td>{$data['7']}</td>\r\n <td>{$data['8']}</td>\r\n </tr>"; } $output .= "\r\n <tr>\r\n <td colspan=\"9\" class=\"hidden\" align=\"right\">{$lang_arenateam['tot_teams']} : {$all_record}</td>\r\n </tr>\r\n </table>\r\n </center>"; }
function do_pass_activate() { global $lang_global, $realm_db; if (empty($_GET['h']) || empty($_GET['p'])) { redirect("register.php?action=pass_recovery&err=1"); } $sql = new SQL(); $sql->connect($realm_db['addr'], $realm_db['user'], $realm_db['pass'], $realm_db['name']); $pass = $sql->quote_smart(trim($_GET['p'])); $hash = $sql->quote_smart($_GET['h']); $result = $sql->query("SELECT id,username FROM account WHERE sha_pass_hash = '{$hash}'"); if ($sql->num_rows($result) == 1) { $username = $sql->result($result, 0, 'username'); $id = $sql->result($result, 0, 'id'); if (substr(sha1(strtoupper($sql->result($result, 0, 'username'))), 0, 7) == $pass) { $sql->query("UPDATE account SET sha_pass_hash=SHA1(CONCAT(UPPER('{$username}'),':',UPPER('{$pass}'))), v=0, s=0 WHERE id = '{$id}'"); redirect("login.php"); } } else { redirect("register.php?action=pass_recovery&err=1"); } redirect("register.php?action=pass_recovery&err=1"); }
function instances() { global $output, $lang_instances, $realm_id, $world_db, $mmfpm_db, $itemperpage; $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']); //-------------------SQL Injection Prevention-------------------------------- // this page has multipage support and field ordering, so we need these $start = isset($_GET['start']) ? $sqlw->quote_smart($_GET['start']) : 0; if (is_numeric($start)) { } else { $start = 0; } $order_by = isset($_GET['order_by']) ? $sqlw->quote_smart($_GET['order_by']) : 'levelMin'; if (preg_match('/^[_[:lower:]]{1,11}$/', $order_by)) { } else { $order_by = 'levelMin'; } $dir = isset($_GET['dir']) ? $sqlw->quote_smart($_GET['dir']) : 1; if (preg_match('/^[01]{1}$/', $dir)) { } else { $dir = 1; } $order_dir = $dir ? 'ASC' : 'DESC'; $dir = $dir ? 0 : 1; //-------------------SQL Injection Prevention-------------------------------- // for multipage support $all_record = $sqlw->result($sqlw->query('SELECT count(*) FROM instance_template'), 0); // main data that we need for this page, instances $result = $sqlw->query(' SELECT map, levelMin, levelMax FROM instance_template ORDER BY ' . $order_by . ' ' . $order_dir . ' LIMIT ' . $start . ', ' . $itemperpage . ';'); //---------------Page Specific Data Starts Here-------------------------- $output .= ' <center> <table class="top_hidden"> <tr> <td width="25%" align="right">'; // multi page links $output .= $lang_instances['total'] . ' : ' . $all_record . '<br /><br />' . generate_pagination('instances.php?order_by=' . $order_by . '&dir=' . ($dir ? 0 : 1), $all_record, $itemperpage, $start); // column headers, with links for sorting $output .= ' </td> </tr> </table> <table class="lined"> <tr> <th width="20%"><a href="instances.php?order_by=map&start=' . $start . '&dir=' . $dir . '"' . ($order_by === 'map' ? ' class="' . $order_dir . '"' : '') . '>' . $lang_instances['map'] . '</a></th> <th width="5%"><a href="instances.php?order_by=levelMin&start=' . $start . '&dir=' . $dir . '"' . ($order_by === 'levelMin' ? ' class="' . $order_dir . '"' : '') . '>' . $lang_instances['level_min'] . '</a></th> <th width="5%"><a href="instances.php?order_by=levelMax&start=' . $start . '&dir=' . $dir . '"' . ($order_by === 'levelMax' ? ' class="' . $order_dir . '"' : '') . '>' . $lang_instances['level_max'] . '</a></th> <th width="20%">' . $lang_instances['area'] . '</th> <th width="10%">' . $lang_instances['type'] . '</th> <th width="5%">' . $lang_instances['expansion'] . '</th> <th width="5%">' . $lang_instances['ppl'] . '</th> </tr>'; $sqlm = new SQL(); $sqlm->connect($mmfpm_db['addr'], $mmfpm_db['user'], $mmfpm_db['pass'], $mmfpm_db['name']); while ($instances = $sqlw->fetch_assoc($result)) { $output .= ' <tr valign="top"> <td>' . get_map_name($instances['map'], $sqlm) . '</td> <td>' . char_get_level_color($instances['levelMin']) . '</td> <td>' . char_get_level_color($instances['levelMax']) . '</td> <td>' . get_map_zone($instances['map'], $sqlm) . '</td> <td>' . get_map_type($instances['map'], $sqlm) . '</td> <td>' . get_map_exp($instances['map'], $sqlm) . '</td> <td>' . get_map_ppl($instances['map'], $sqlm) . '</td> </tr>'; } unset($reset); unset($hours); unset($days); unset($instances); unset($result); $output .= ' </table> <table class="top_hidden"> <tr> <td width="25%" align="right">'; // multi page links $output .= $lang_instances['total'] . ' : ' . $all_record . '<br /><br />' . generate_pagination('instances.php?order_by=' . $order_by . '&dir=' . ($dir ? 0 : 1), $all_record, $itemperpage, $start); unset($start); $output .= ' </td> </tr> </table> </center>'; }
function do_add_entry() { global $realm_db, $user_name, $output, $action_permission, $user_lvl; valid_login($action_permission['insert']); if (empty($_GET['ban_type']) || empty($_GET['entry']) || empty($_GET['bantime'])) { redirect("banned.php?error=1&action=add_entry"); } $sqlr = new SQL(); $sqlr->connect($realm_db['addr'], $realm_db['user'], $realm_db['pass'], $realm_db['name']); $ban_type = $sqlr->quote_smart($_GET['ban_type']); $entry = $sqlr->quote_smart($_GET['entry']); if ($ban_type == "account_banned") { $result1 = $sqlr->query("SELECT id FROM account WHERE username ='******'"); if (!$sqlr->num_rows($result1)) { redirect("banned.php?error=4&action=add_entry"); } else { $entry = $sqlr->result($result1, 0, 'id'); } } $bantime = time() + 3600 * $sqlr->quote_smart($_GET['bantime']); $banreason = isset($_GET['banreason']) && $_GET['banreason'] != '' ? $sqlr->quote_smart($_GET['banreason']) : "none"; if ($ban_type === "account_banned") { $result = $sqlr->query("SELECT count(*) FROM account_banned WHERE id = '{$entry}'"); if (!$sqlr->result($result, 0)) { $sqlr->query("INSERT INTO account_banned (id, bandate, unbandate, bannedby, banreason, active)\r\n VALUES ('{$entry}'," . time() . ",{$bantime},'{$user_name}','{$banreason}', 1)"); } } else { $sqlr->query("INSERT INTO ip_banned (ip, bandate, unbandate, bannedby, banreason)\r\n VALUES ('{$entry}'," . time() . ",{$bantime},'{$user_name}','{$banreason}')"); } if ($sqlr->affected_rows()) { redirect("banned.php?error=3&ban_type={$ban_type}"); } else { redirect("banned.php?error=2&ban_type={$ban_type}"); } }
function doupdate_referral($referredby, $user_id) { global $realm_db, $mmfpm_db; $sqlr = new SQL(); $sqlr->connect($realm_db['addr'], $realm_db['user'], $realm_db['pass'], $realm_db['name']); $sqlm = new SQL(); $sqlm->connect($mmfpm_db['addr'], $mmfpm_db['user'], $mmfpm_db['pass'], $mmfpm_db['name']); if (NULL == $sqlm->result($sqlm->query(' SELECT InviterAccount FROM mm_point_system_invites WHERE PlayersAccount = \'' . $user_id . '\''), 'InviterAccount')) { $referred_by = $sqlr->result($sqlr->query(' SELECT id FROM account WHERE username = \'' . $referredby . '\''), 'id'); if ($referred_by == NULL) { } else { if ($referred_by == $user_id) { } else { $sqlm->query(' INSERT INTO mm_point_system_invites (PlayersAccount, InviterAccount) VALUES (\'' . $user_id . '\', \'' . $referred_by . '\')'); return true; } } } return false; }
function spell_get_icon($auraid, &$sqlm = 0) { global $mmfpm_db, $proxy_cfg, $get_icons_from_web, $item_icons; // not all functions that call this function will pass reference to existing SQL links // so we need to check and overload when needed if (empty($sqlm)) { $sqlm = new SQL(); $sqlm->connect($mmfpm_db['addr'], $mmfpm_db['user'], $mmfpm_db['pass'], $mmfpm_db['name']); } $result = $sqlm->query(' SELECT field_133 FROM dbc_spell WHERE id = ' . $auraid . ' LIMIT 1'); if ($result) { $displayid = $sqlm->result($result, 0); } else { $displayid = 0; } if ($displayid) { $result = $sqlm->query(' SELECT name FROM dbc_spellicon WHERE id = ' . $displayid . ' LIMIT 1'); if ($result) { $aura_uppercase = $sqlm->result($result, 0); $aura = strtolower($aura_uppercase); if ($aura) { if (file_exists('' . $item_icons . '/' . $aura . '.jpg')) { if (filesize('' . $item_icons . '/' . $aura . '.jpg') > 349) { return '' . $item_icons . '/' . $aura . '.jpg'; } else { $sqlm->query(' DELETE FROM dbc_spellicon WHERE id = ' . $displayid . ''); if (file_exists('' . $item_icons . '/' . $aura . '.jpg')) { unlink('' . $item_icons . '/' . $aura . '.jpg'); } $aura = ''; } } else { $aura = ''; } } else { $aura = ''; } } else { $aura = ''; } } else { $aura = ''; } if ($get_icons_from_web) { $xmlfilepath = 'http://www.wowhead.com/spell='; $proxy = $proxy_cfg['addr']; $port = $proxy_cfg['port']; if (empty($proxy_cfg['addr'])) { $proxy = 'www.wowhead.com'; $xmlfilepath = 'spell='; $port = 80; } if ($aura == '') { //get the icon name $fp = @fsockopen($proxy, $port, $errno, $errstr, 0.5); if (!$fp) { return 'img/INV/INV_blank_32.gif'; } $out = "GET /{$xmlfilepath}{$auraid} HTTP/1.0\r\nHost: www.wowhead.com\r\n"; if (!empty($proxy_cfg['user'])) { $out .= "Proxy-Authorization: Basic " . base64_encode("{$proxy_cfg['user']}:{$proxy_cfg['pass']}") . "\r\n"; } $out .= "Connection: Close\r\n\r\n"; $temp = ''; fwrite($fp, $out); while ($fp && !feof($fp)) { $temp .= fgets($fp, 4096); } fclose($fp); $wowhead_string = $temp; $temp_string1 = strstr($wowhead_string, 'Icon.create('); $temp_string2 = substr($temp_string1, 12, 50); $temp_string3 = strtok($temp_string2, ','); $temp_string4 = substr($temp_string3, 1, strlen($temp_string3) - 2); $aura_icon_name = $temp_string4; $aura_uppercase = $aura_icon_name; $aura = strtolower($aura_uppercase); } if (file_exists('' . $item_icons . '/' . $aura . '.jpg')) { if (filesize('' . $item_icons . '/' . $aura . '.jpg') > 349) { $sqlm->query(' REPLACE INTO dbc_spellicon (id, name) VALUES (\'' . $displayid . '\', \'' . $aura . '\')'); return '' . $item_icons . '/' . $aura . '.jpg'; } else { $sqlm->query(' DELETE FROM dbc_spellicon WHERE id = ' . $displayid . ''); if (file_exists('' . $item_icons . '/' . $aura . '.jpg')) { unlink('' . $item_icons . '/' . $aura . '.jpg'); } } } //get the icon itself if (empty($proxy_cfg['addr'])) { $proxy = 'static.wowhead.com'; $port = 80; } $fp = @fsockopen($proxy, $port, $errno, $errstr, 0.5); if (!$fp) { return 'img/INV/INV_blank_32.gif'; } $iconfilename = strtolower($aura); $file = 'http://static.wowhead.com/images/wow/icons/medium/' . $iconfilename . '.jpg'; $out = "GET {$file} HTTP/1.0\r\nHost: static.wowhead.com\r\n"; if (!empty($proxy_cfg['user'])) { $out .= "Proxy-Authorization: Basic " . base64_encode("{$proxy_cfg['user']}:{$proxy_cfg['pass']}") . "\r\n"; } $out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out); //remove header while ($fp && !feof($fp)) { $headerbuffer = fgets($fp, 4096); if (urlencode($headerbuffer) == '%0D%0A') { break; } } if (file_exists('' . $item_icons . '/' . $aura . '.jpg')) { if (filesize('' . $item_icons . '/' . $aura . '.jpg') > 349) { $sqlm->query(' REPLACE INTO dbc_spellicon (id, name) VALUES (\'' . $displayid . '\', \'' . $aura . '\')'); return '' . $item_icons . '/' . $aura . '.jpg'; } else { $sqlm->query(' DELETE FROM dbc_spellicon WHERE id = ' . $displayid . ''); if (file_exists('' . $item_icons . '/' . $aura . '.jpg')) { unlink('' . $item_icons . '/' . $aura . '.jpg'); } } } $img_file = fopen('' . $item_icons . '/' . $aura . '.jpg', 'wb'); while (!feof($fp)) { fwrite($img_file, fgets($fp, 4096)); } fclose($fp); fclose($img_file); if (file_exists('' . $item_icons . '/' . $aura . '.jpg')) { if (filesize('' . $item_icons . '/' . $aura . '.jpg') > 349) { $sqlm->query(' REPLACE INTO dbc_spellicon (id, name) VALUES (\'' . $displayid . '\', \'' . $aura . '\')'); return '' . $item_icons . '/' . $aura . '.jpg'; } else { $sqlm->query(' DELETE FROM dbc_spellicon WHERE id = ' . $displayid . ''); if (file_exists('' . $item_icons . '/' . $aura . '.jpg')) { unlink('' . $item_icons . '/' . $aura . '.jpg'); } } } else { return 'img/INV/INV_blank_32.gif'; } } else { return 'img/INV/INV_blank_32.gif'; } }
function doedit_user() { global $lang_global, $realm_db, $mmfpm_db, $user_lvl, $user_name, $action_permission; valid_login($action_permission['update']); if ((!isset($_POST['pass']) || $_POST['pass'] === '') && (!isset($_POST['mail']) || $_POST['mail'] === '') && (!isset($_POST['expansion']) || $_POST['expansion'] === '') && (!isset($_POST['referredby']) || $_POST['referredby'] === '')) { redirect("user.php?action=edit_user&&id={$_POST['id']}&error=1"); } $sqlr = new SQL(); $sqlr->connect($realm_db['addr'], $realm_db['user'], $realm_db['pass'], $realm_db['name']); $id = $sqlr->quote_smart($_POST['id']); $username = $sqlr->quote_smart($_POST['username']); $banreason = $sqlr->quote_smart($_POST['banreason']); $pass = $sqlr->quote_smart($_POST['pass']); $user_pass_change = $pass != sha1(strtoupper($username) . ":******") ? "username='******',sha_pass_hash='{$pass}'," : ""; $mail = isset($_POST['mail']) && $_POST['mail'] != '' ? $sqlr->quote_smart($_POST['mail']) : ""; $failed = isset($_POST['failed']) ? $sqlr->quote_smart($_POST['failed']) : 0; $gmlevel = isset($_POST['gmlevel']) ? $sqlr->quote_smart($_POST['gmlevel']) : 0; $expansion = isset($_POST['expansion']) ? $sqlr->quote_smart($_POST['expansion']) : 1; $banned = isset($_POST['banned']) ? $sqlr->quote_smart($_POST['banned']) : 0; $locked = isset($_POST['locked']) ? $sqlr->quote_smart($_POST['locked']) : 0; $referredby = $sqlr->quote_smart(trim($_POST['referredby'])); //make sure username/pass at least 4 chars long and less than max if (strlen($username) < 4 || strlen($username) > 15) { redirect("user.php?action=edit_user&id={$id}&error=8"); } if ($gmlevel >= $user_lvl) { redirect("user.php?action=edit_user&&id={$_POST['id']}&error=16"); } require_once "libs/valid_lib.php"; if (!valid_alphabetic($username)) { redirect("user.php?action=edit_user&error=9&id={$id}"); } //restricting accsess to lower gmlvl $result = $sqlr->query("SELECT gmlevel,username FROM account WHERE id = '{$id}'"); if ($user_lvl <= $sqlr->result($result, 0, 'gmlevel') && $user_name != $sqlr->result($result, 0, 'username')) { redirect("user.php?error=14"); } if (!$banned) { $sqlr->query("DELETE FROM account_banned WHERE id='{$id}'"); } else { $result = $sqlr->query("SELECT count(*) FROM account_banned WHERE id = '{$id}'"); if (!$sqlr->result($result, 0)) { $sqlr->query("INSERT INTO account_banned (id, bandate, unbandate, bannedby, banreason, active)\r\n VALUES ({$id}, " . time() . "," . (time() + 365 * 24 * 3600) . ",'{$user_name}','{$banreason}', 1)"); } } $sqlr->query("UPDATE account SET email='{$mail}', {$user_pass_change} v=0,s=0,failed_logins='{$failed}',locked='{$locked}',expansion='{$expansion}' WHERE id='{$id}'"); $sqlr->query("UPDATE account SET gmlevel='{$gmlevel}' WHERE id='{$id}'"); if (doupdate_referral($referredby, $id) || $sqlr->affected_rows()) { redirect("user.php?action=edit_user&error=13&id={$id}"); } else { redirect("user.php?action=edit_user&error=12&id={$id}"); } }
function del_guild() { global $lang_guild, $lang_global, $output, $characters_db, $realm_id, $realm_db, $action_permission, $user_lvl, $user_id; $sqlr = new SQL(); $sqlr->connect($realm_db['addr'], $realm_db['user'], $realm_db['pass'], $realm_db['name']); if (empty($_GET['realm'])) { $realmid = $realm_id; } else { $realmid = $sqlr->quote_smart($_GET['realm']); if (!is_numeric($realmid)) { $realmid = $realm_id; } } if (isset($_GET['id'])) { $id = $_GET['id']; } else { redirect("guild.php?error=1&realm={$realmid}"); } if (is_numeric($id)) { } else { redirect("guild.php?error=5&realm={$realmid}"); } $sqlc = new SQL(); $sqlc->connect($characters_db[$realmid]['addr'], $characters_db[$realmid]['user'], $characters_db[$realmid]['pass'], $characters_db[$realmid]['name']); $q_amIguildleader = $sqlc->query("select 1 from guild where guildid = '{$id}' and leaderguid in (select guid from characters where account = '{$user_id}')"); $amIguildleader = $sqlc->result($q_amIguildleader, 0, '1'); if ($user_lvl < $action_permission['delete'] && !$amIguildleader) { redirect("guild.php?error=6&realm={$realmid}"); } $output .= "\r\n <center>\r\n <h1><font class=\"error\">{$lang_global['are_you_sure']}</font></h1>\r\n <br />\r\n <font class=\"bold\">{$lang_guild['guild_id']}: {$id} {$lang_global['will_be_erased']}</font>\r\n <br /><br />\r\n <form action=\"cleanup.php?action=docleanup\" method=\"post\" name=\"form\">\r\n <input type=\"hidden\" name=\"type\" value=\"guild\" />\r\n <input type=\"hidden\" name=\"check\" value=\"-{$id}\" />\r\n <input type=\"hidden\" name=\"override\" value=\"1\" />\r\n <table class=\"hidden\">\r\n <tr>\r\n <td>"; makebutton($lang_global['yes'], "javascript:do_submit()\" type=\"wrn", 130); $output .= "\r\n </td>\r\n <td>"; makebutton($lang_global['no'], "guild.php?action=view_guild&realm={$realmid}&id={$id}\" type=\"def", 130); $output .= ' </td> </tr> </table> </form> </center> <br />'; }
function front(&$sqlr, &$sqlc, &$sqlm) { global $output, $lang_global, $lang_index, $realm_id, $world_db, $mmfpm_db, $server, $action_permission, $user_lvl, $user_id, $showcountryflag, $motd_display_poster, $gm_online_count, $gm_online, $itemperpage; $output .= ' <div class="top">'; if (test_port($server[$realm_id]['addr'], $server[$realm_id]['game_port'])) { $stats = $sqlr->fetch_assoc($sqlr->query('SELECT starttime, maxplayers FROM uptime WHERE realmid = ' . $realm_id . ' ORDER BY starttime DESC LIMIT 1'), 0); $uptimetime = time() - $stats['starttime']; function format_uptime($seconds) { $secs = intval($seconds % 60); $mins = intval($seconds / 60 % 60); $hours = intval($seconds / 3600 % 24); $days = intval($seconds / 86400); $uptimeString = ''; if ($days) { $uptimeString .= $days; $uptimeString .= 1 === $days ? ' day' : ' days'; } if ($hours) { $uptimeString .= (0 < $days ? ', ' : '') . $hours; $uptimeString .= 1 === $hours ? ' hour' : ' hours'; } if ($mins) { $uptimeString .= (0 < $days || 0 < $hours ? ', ' : '') . $mins; $uptimeString .= 1 === $mins ? ' minute' : ' minutes'; } if ($secs) { $uptimeString .= (0 < $days || 0 < $hours || 0 < $mins ? ', ' : '') . $secs; $uptimeString .= 1 === $secs ? ' second' : ' seconds'; } return $uptimeString; } $staticUptime = $lang_index['realm'] . ' <em>' . htmlentities(get_realm_name($realm_id)) . '</em> ' . $lang_index['online'] . ' for ' . format_uptime($uptimetime); unset($uptimetime); $output .= ' <div id="uptime"> <h1> <font color="#55aa55">' . $staticUptime . '<br />' . $lang_index['maxplayers'] . ': ' . $stats['maxplayers'] . '</font> </h1> </div>'; unset($staticUptime); unset($stats); $online = true; } else { $output .= ' <h1> <font class="error">' . $lang_index['realm'] . ' <em>' . htmlentities(get_realm_name($realm_id)) . '</em> ' . $lang_index['offline_or_let_high'] . '</font> </h1>'; $online = false; } $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']); // This retrieves the actual database version from the database itself, instead of hardcoding it into a string $version = $sqlw->fetch_assoc($sqlw->query('SELECT core_revision, db_version FROM version'), 0); $output .= ' ' . $lang_index['trinity_rev'] . ' ' . $version['core_revision'] . ' ' . $lang_index['using_db'] . ' ' . $version['db_version'] . ' </div>'; unset($version); //MOTD part $start_m = isset($_GET['start_m']) ? $sqlc->quote_smart($_GET['start_m']) : 0; if (is_numeric($start_m)) { } else { $start_m = 0; } $sqlm = new SQL(); $sqlm->connect($mmfpm_db['addr'], $mmfpm_db['user'], $mmfpm_db['pass'], $mmfpm_db['name']); $all_record_m = $sqlm->result($sqlm->query('SELECT count(*) FROM mm_motd'), 0); if ($user_lvl >= $action_permission['delete']) { $output .= ' <script type="text/javascript"> // <![CDATA[ answerbox.btn_ok="' . $lang_global['yes_low'] . '"; answerbox.btn_cancel="' . $lang_global['no'] . '"; var del_motd = "motd.php?action=delete_motd&id="; // ]]> </script>'; } $output .= ' <center> <table class="lined"> <tr> <th align="right">'; if ($user_lvl >= $action_permission['insert']) { $output .= ' <a href="motd.php?action=add_motd">' . $lang_index['add_motd'] . '</a>'; } $output .= ' </th> </tr>'; if ($all_record_m) { $result = $sqlm->query('SELECT id, realmid, type, content FROM mm_motd WHERE realmid = ' . $realm_id . ' ORDER BY id DESC LIMIT ' . $start_m . ', 3'); while ($post = $sqlm->fetch_assoc($result)) { $output .= ' <tr> <td align="left" class="large"> <blockquote>' . bbcode_bbc2html($post['content']) . '</blockquote> </td> </tr> <tr> <td align="right">'; $motd_display_poster ? $output .= $post['type'] : ''; if ($user_lvl >= $action_permission['delete']) { $output .= ' <img src="img/cross.png" width="12" height="12" onclick="answerBox(\'' . $lang_global['delete'] . ': <font color=white>' . $post['id'] . '</font><br />' . $lang_global['are_you_sure'] . '\', del_motd + ' . $post['id'] . ');" style="cursor:pointer;" alt="" />'; } if ($user_lvl >= $action_permission['update']) { $output .= ' <a href="motd.php?action=edit_motd&error=3&id=' . $post['id'] . '"> <img src="img/edit.png" width="14" height="14" alt="" /> </a>'; } $output .= ' </td> </tr> <tr> <td class="hidden"></td> </tr>'; } if ($online) { $output .= '%%REPLACE_TAG%%'; } else { $output .= ' <tr> <td align="right" class="hidden">' . generate_pagination('index.php?start=0', $all_record_m, 3, $start_m, 'start_m') . '</td> </tr>'; } } $output .= ' </table>'; //print online chars if ($online) { //==========================$_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']) : 'level'; if (preg_match('/^[_[:lower:]]{1,12}$/', $order_by)) { } else { $order_by = 'level'; } $dir = isset($_GET['dir']) ? $sqlc->quote_smart($_GET['dir']) : 1; if (preg_match('/^[01]{1}$/', $dir)) { } else { $dir = 1; } $order_dir = $dir ? 'DESC' : 'ASC'; $dir = $dir ? 0 : 1; //==========================$_GET and SECURE end============================= if ($order_by === 'map') { $order_by = 'map ' . $order_dir . ', zone'; } elseif ($order_by === 'zone') { $order_by = 'zone ' . $order_dir . ', map'; } $order_side = ''; if ($user_lvl || $server[$realm_id]['both_factions']) { } else { $result = $sqlc->query('SELECT race FROM characters WHERE account = ' . $user_id . ' AND totaltime = (SELECT MAX(totaltime) FROM characters WHERE account = ' . $user_id . ') LIMIT 1'); if ($sqlc->num_rows($result)) { $order_side = in_array($sqlc->result($result, 0), array(2, 5, 6, 8, 10)) ? ' AND race IN (2,5,6,8,10) ' : ' AND race IN (1,3,4,7,11) '; } } if ($order_by == 'ip') { $result = $sqlr->query('SELECT id, last_ip FROM account WHERE online = 1 ORDER BY last_ip ' . $order_dir . ' LIMIT ' . $start . ', ' . $itemperpage . ''); } else { $result = $sqlc->query('SELECT characters.guid, characters.name, characters.race, characters.class, characters.zone, characters.map, characters.level, characters.account, characters.gender, characters.totalHonorPoints, COALESCE(guild_member.guildid,0) AS guildid FROM characters LEFT JOIN guild_member ON guild_member.guid = characters.guid WHERE characters.online = 1 ' . ($gm_online == '0' ? 'AND characters.extra_flags &1 = 0 ' : '') . $order_side . ' ORDER BY ' . $order_by . ' ' . $order_dir . ' LIMIT ' . $start . ', ' . $itemperpage); } $total_online = $sqlc->result($sqlc->query('SELECT count(*) FROM characters WHERE online= 1' . ($gm_online_count == '0' ? ' AND extra_flags &1 = 0' : '')), 0); $replace = ' <tr> <td align="right" class="hidden">' . generate_pagination('index.php?start=' . $start . '&order_by=' . $order_by . '&dir=' . ($dir ? 0 : 1) . '', $all_record_m, 3, $start_m, 'start_m') . '</td> </tr>'; unset($all_record_m); $output = str_replace('%%REPLACE_TAG%%', $replace, $output); unset($replace); $output .= ' <font class="bold">' . $lang_index['tot_users_online'] . ': ' . $total_online . '</font> <table class="lined"> <tr> <td colspan="' . (10 - $showcountryflag) . '" align="right" class="hidden" width="25%">'; $output .= generate_pagination('index.php?start_m=' . $start_m . '&order_by=' . $order_by . '&dir=' . ($dir ? 0 : 1), $total_online, $itemperpage, $start); $output .= ' </td> </tr> <tr> <th width="15%"><a href="index.php?start=' . $start . '&start_m=' . $start_m . '&order_by=name&dir=' . $dir . '"' . ($order_by === 'name' ? ' class="' . $order_dir . '"' : '') . '>' . $lang_index['name'] . '</a></th> <th width="1%"><a href="index.php?start=' . $start . '&start_m=' . $start_m . '&order_by=race&dir=' . $dir . '"' . ($order_by === 'race' ? ' class="' . $order_dir . '"' : '') . '>' . $lang_index['race'] . '</a></th> <th width="1%"><a href="index.php?start=' . $start . '&start_m=' . $start_m . '&order_by=class&dir=' . $dir . '"' . ($order_by === 'class' ? ' class="' . $order_dir . '"' : '') . '>' . $lang_index['class'] . '</a></th> <th width="5%"><a href="index.php?start=' . $start . '&start_m=' . $start_m . '&order_by=level&dir=' . $dir . '"' . ($order_by === 'level' ? ' class="' . $order_dir . '"' : '') . '>' . $lang_index['level'] . '</a></th> <th width="1%"><a href="index.php?start=' . $start . '&start_m=' . $start_m . '&order_by=totalHonorPoints&dir=' . $dir . '"' . ($order_by === 'totalHonorPoints' ? ' class="' . $order_dir . '"' : '') . '>' . $lang_index['rank'] . '</a></th> <th width="15%"><a href="index.php?start=' . $start . '&start_m=' . $start_m . '&order_by=guildid&dir=' . $dir . '"' . ($order_by === 'guildid' ? ' class="' . $order_dir . '"' : '') . '>' . $lang_index['guild'] . '</a></th> <th width="20%"><a href="index.php?start=' . $start . '&start_m=' . $start_m . '&order_by=map&dir=' . $dir . '"' . ($order_by === 'map ' . $order_dir . ', zone' ? ' class="' . $order_dir . '"' : '') . '>' . $lang_index['map'] . '</a></th> <th width="25%"><a href="index.php?start=' . $start . '&start_m=' . $start_m . '&order_by=zone&dir=' . $dir . '"' . ($order_by === 'zone ' . $order_dir . ', map' ? ' class="' . $order_dir . '"' : '') . '>' . $lang_index['zone'] . '</a></th>'; if ($showcountryflag) { require_once 'libs/misc_lib.php'; $output .= ' <th width="1%">' . $lang_global['country'] . '</th>'; } $output .= ' </tr>'; $sqlm = new SQL(); $sqlm->connect($mmfpm_db['addr'], $mmfpm_db['user'], $mmfpm_db['pass'], $mmfpm_db['name']); while ($char = $sqlc->fetch_assoc($result)) { if ($order_by == 'ip') { $temp = $sqlc->fetch_assoc($sqlc->query('SELECT characters.guid, characters.name, characters.race, characters.class, characters.zone, characters.map, characters.level, characters.account, characters.gender, characters.totalHonorPoints, COALESCE(guild_member.guildid,0) AS guildid FROM characters LEFT JOIN guild_member ON guild_member.guid = characters.guid WHERE characters.online= 1 ' . ($gm_online == '0' ? 'AND characters.extra_flags &1 = 0 ' : '') . $order_side . ' and account = ' . $char['id'])); if (isset($temp['guid'])) { $char = $temp; } else { continue; } } $gm = $sqlr->result($sqlr->query('SELECT gmlevel FROM account_access WHERE id=' . $char['account'] . ''), 0); $guild_name = $sqlc->result($sqlc->query('SELECT name FROM guild WHERE guildid=' . $char['guildid'] . '')); $output .= ' <tr> <td>'; if ($user_lvl >= $gm) { $output .= ' <a href="char.php?id=' . $char['guid'] . '"> <span onmousemove="toolTip(\'' . id_get_gm_level($gm) . '\', \'item_tooltip\')" onmouseout="toolTip()">' . htmlentities($char['name']) . '</span> </a>'; } else { $output .= ' <span onmousemove="toolTip(\'' . id_get_gm_level($gm) . '\', \'item_tooltip\')" onmouseout="toolTip()">' . htmlentities($char['name']) . '</span>'; } $output .= ' </td> <td> <img src="img/c_icons/' . $char['race'] . '-' . $char['gender'] . '.gif" onmousemove="toolTip(\'' . char_get_race_name($char['race']) . '\', \'item_tooltip\')" onmouseout="toolTip()" alt="" /> </td> <td> <img src="img/c_icons/' . $char['class'] . '.gif" onmousemove="toolTip(\'' . char_get_class_name($char['class']) . '\', \'item_tooltip\')" onmouseout="toolTip()" alt="" /> </td> <td>' . char_get_level_color($char['level']) . '</td> <td> <span onmouseover="toolTip(\'' . char_get_pvp_rank_name($char['totalHonorPoints'], char_get_side_id($char['race'])) . '\', \'item_tooltip\')" onmouseout="toolTip()" style="color: white;"><img src="img/ranks/rank' . char_get_pvp_rank_id($char['totalHonorPoints'], char_get_side_id($char['race'])) . '.gif" alt="" /></span> </td> <td> <a href="guild.php?action=view_guild&error=3&id=' . $char['guildid'] . '">' . htmlentities($guild_name) . '</a> </td> <td><span onmousemove="toolTip(\'MapID:' . $char['map'] . '\', \'item_tooltip\')" onmouseout="toolTip()">' . get_map_name($char['map'], $sqlm) . '</span></td> <td><span onmousemove="toolTip(\'ZoneID:' . $char['zone'] . '\', \'item_tooltip\')" onmouseout="toolTip()">' . get_zone_name($char['zone'], $sqlm) . '</span></td>'; if ($showcountryflag) { $country = misc_get_country_by_account($char['account'], $sqlr, $sqlm); $output .= ' <td>' . ($country['code'] ? '<img src="img/flags/' . $country['code'] . '.png" onmousemove="toolTip(\'' . $country['country'] . '\',\'item_tooltip\')" onmouseout="toolTip()" alt="" />' : '-') . '</td>'; } $output .= ' </tr>'; } $output .= ' <tr>'; $output .= ' <td colspan="' . (10 - $showcountryflag) . '" align="right" class="hidden" width="25%">'; $output .= generate_pagination('index.php?start_m=' . $start_m . '&order_by=' . $order_by . '&dir=' . ($dir ? 0 : 1), $total_online, $itemperpage, $start); unset($total_online); $output .= ' </td> </tr> </table> <br /> </center>'; } }
function sql_table_dump($dbhost, $dbuser, $dbpass, $database, $table, $construct, $file) { global $lang_global; $sql_0 = new SQL(); $sql_0->connect($dbhost, $dbuser, $dbpass, $database, true); $fp = fopen($file, 'r+') or die(error($lang_backup['file_write_err'])); fseek($fp, 0, SEEK_END); fwrite($fp, "--\n") or die(error($lang_backup['file_write_err'])); fwrite($fp, "-- Dump of {$database}.{$table}\n") or die(error($lang_backup['file_write_err'])); fwrite($fp, "-- Dump DATE : " . date("m.d.y H:i:s") . "\n--\n\n") or die(error($lang_backup['file_write_err'])); if ($construct) { fwrite($fp, "-- Table structure for table {$database}.{$table}\n") or die(error($lang_backup['file_write_err'])); if (!($fi = $sql_0->query("DESC " . $table))) { error($sql_0->error()); } fwrite($fp, "DROP TABLE IF EXISTS {$table};\n") or die(error($lang_backup['file_write_err'])); $pri = ""; $creatinfo = array(); while ($tmp = $sql_0->fetch_row($fi)) { $con = "`" . $tmp[0] . "` "; $con .= trim($tmp[1] . " "); if ($tmp[2] != "YES") { $con .= " NOT NULL"; } if ($tmp[4]) { if ($tmp[4] == 'CURRENT_TIMESTAMP' || $tmp[4] == 'timestamp') { $con .= " default " . $tmp[4]; } else { $con .= " default '" . $tmp[4] . "'"; } } else { if ($tmp[4] === '' && $tmp[3] != "PRI") { $con .= " default ''"; } else { if (strlen($tmp[4]) != 0) { $con .= " default '0'"; } } } if (strtolower($tmp[5]) == "auto_increment") { $con .= " auto_increment"; } $creatinfo[] = $con; } $fieldscon = implode(",\n\t", $creatinfo); fwrite($fp, "CREATE TABLE " . $table . " (") or die(error($lang_backup['file_write_err'])); fwrite($fp, "\n\t{$fieldscon}") or die(error($lang_backup['file_write_err'])); $qkey = $sql_0->query("SHOW INDEX FROM " . $table); if ($rkey = $sql_0->fetch_array($qkey)) { $knames = array(); $keys = array(); do { $keys[$rkey["Key_name"]]["nonunique"] = $rkey["Non_unique"]; if (!$rkey["Sub_part"]) { $keys[$rkey["Key_name"]]["order"][$rkey["Seq_in_index"] - 1] = $rkey["Column_name"]; } else { $keys[$rkey["Key_name"]]["order"][$rkey["Seq_in_index"] - 1] = $rkey["Column_name"] . "(" . $rkey["Sub_part"] . ")"; } $flag = false; for ($l = 0; $l < sizeof($knames); $l++) { if ($knames[$l] == $rkey["Key_name"]) { $flag = true; } } if (!$flag) { $knames[] = $rkey["Key_name"]; } } while ($rkey = $sql_0->fetch_array($qkey)); for ($kl = 0; $kl < sizeof($knames); $kl++) { if ($knames[$kl] == "PRIMARY") { fwrite($fp, ",\n\tPRIMARY KEY") or die(error($lang_backup['file_write_err'])); } else { if ($keys[$knames[$kl]]["nonunique"] == "0") { fwrite($fp, ",\n\tUNIQUE `{$knames[$kl]}`") or die(error($lang_backup['file_write_err'])); } else { fwrite($fp, ",\n\tKEY `{$knames[$kl]}`") or die(error($lang_backup['file_write_err'])); } } $a = @implode("`,`", $keys[$knames[$kl]]["order"]); fwrite($fp, " (`{$a}`)") or die(error($lang_backup['file_write_err'])); } } $query_res = $sql_0->query("SHOW TABLE STATUS FROM {$database} WHERE Name = '{$table}'"); $tmp = $sql_0->fetch_row($query_res); $query_charset = $sql_0->query("SHOW VARIABLES WHERE Variable_name = 'character_set_database'"); $info = " "; if ($tmp[1]) { $info .= "ENGINE={$tmp['1']} "; } $info .= "DEFAULT CHARSET=" . $sql_0->result($query_charset, 0, 'Value') . " "; if ($tmp[16]) { $info .= strtoupper($tmp[16]) . " "; } if ($tmp[10]) { $info .= "AUTO_INCREMENT={$tmp['10']} "; } if ($tmp[17]) { $info .= "COMMENT='{$tmp['17']}'"; } fwrite($fp, "\n){$info};\n\n") or die(error($lang_backup['file_write_err'])); } $query = $sql_0->query("SELECT * FROM {$table}"); $num_fields = $sql_0->num_fields($query); $numrow = $sql_0->num_rows($query); $row_counter = 0; if ($numrow) { fwrite($fp, "-- Dumping data for table {$database}.{$table}\n") or die(error($lang_backup['file_write_err'])); fwrite($fp, "LOCK TABLES {$table} WRITE;\n") or die(error($lang_backup['file_write_err'])); fwrite($fp, "DELETE FROM {$table};\n") or die(error($lang_backup['file_write_err'])); fwrite($fp, "INSERT INTO {$table} (") or die(error($lang_backup['file_write_err'])); for ($count = 0; $count < $num_fields; $count++) { fwrite($fp, "`" . $sql_0->field_name($query, $count) . "`") or die(error($lang_backup['file_write_err'])); if ($count < $num_fields - 1) { fwrite($fp, ",") or die(error($lang_backup['file_write_err'])); } } fwrite($fp, ") VALUES \n") or die(error($lang_backup['file_write_err'])); for ($i = 0; $i < $numrow; $i++) { $row_counter++; fwrite($fp, "\t(") or die(error($lang_backup['file_write_err'])); $row = $sql_0->fetch_row($query); for ($j = 0; $j < $num_fields; $j++) { $row[$j] = addslashes($row[$j]); $row[$j] = ereg_replace("\n", "\\n", $row[$j]); if (isset($row[$j])) { if ($sql_0->field_type($query, $j) == "int") { fwrite($fp, "{$row[$j]}") or die(error($lang_backup['file_write_err'])); } else { fwrite($fp, "'{$row[$j]}'") or die(error($lang_backup['file_write_err'])); } } else { fwrite($fp, "''") or die(error($lang_backup['file_write_err'])); } if ($j < $num_fields - 1) { fwrite($fp, ",") or die(error($lang_backup['file_write_err'])); } } if ($row_counter >= 10) { fwrite($fp, ");\n") or die(error($lang_backup['file_write_err'])); fwrite($fp, "INSERT INTO {$table} (") or die(error($lang_backup['file_write_err'])); for ($count = 0; $count < $num_fields; $count++) { fwrite($fp, "`" . $sql_0->field_name($query, $count) . "`") or die(error($lang_backup['file_write_err'])); if ($count < $num_fields - 1) { fwrite($fp, ",") or die(error($lang_backup['file_write_err'])); } } fwrite($fp, ") VALUES \n") or die(error($lang_backup['file_write_err'])); $row_counter = 0; } elseif ($i < $numrow - 1) { fwrite($fp, "),\n") or die(error($lang_backup['file_write_err'])); } } fwrite($fp, ");\n") or die(error($lang_backup['file_write_err'])); fwrite($fp, "UNLOCK TABLES;\n") or die(error($lang_backup['file_write_err'])); } else { fwrite($fp, "-- EMPTY\n") or die(error($lang_backup['file_write_err'])); } $sql_0->close(); fwrite($fp, "\n") or die(error($lang_backup['file_write_err'])); fclose($fp); }
function doupdate_referral($referredby, &$sqlr, &$sqlc) { global $mmfpm_db, $user_id; $sqlm = new SQL(); $sqlm->connect($mmfpm_db['addr'], $mmfpm_db['user'], $mmfpm_db['pass'], $mmfpm_db['name']); if (NULL == $sqlm->result($sqlm->query('SELECT InvitedBy FROM mm_point_system_invites WHERE PlayersAccount = \'' . $user_id . '\''), 0)) { $referred_by = $sqlc->result($sqlc->query('SELECT guid FROM characters WHERE name = \'' . $referredby . '\''), 0); if ($referred_by == NULL) { } else { $char = $sqlc->result($sqlc->query('SELECT account FROM characters WHERE guid = \'' . $referred_by . '\''), 0, 'account'); $result = $sqlr->result($sqlr->query('SELECT id FROM account WHERE id = \'' . $char . '\''), 0, 'id'); if ($result == $user_id) { } else { $sqlm->query('INSERT INTO mm_point_system_invites (PlayersAccount, InvitedBy, InviterAccount) VALUES (\'' . $user_id . '\', \'' . $referred_by . '\', \'' . $result . '\')'); return true; } } } return false; }
function run_cleanup() { global $lang_cleanup, $lang_global, $output, $realm_db, $characters_db, $realm_id, $user_lvl; if (empty($_GET['cleanup_by']) || empty($_GET['cleanup_sign'])) { redirect("cleanup.php?error=1"); } $sql = new SQL(); $sql->connect($realm_db['addr'], $realm_db['user'], $realm_db['pass'], $realm_db['name']); $cleanup_by = $sql->quote_smart($_GET['cleanup_by']); $cleanup_sign = $sql->quote_smart($_GET['cleanup_sign']); $cleanup_value = $sql->quote_smart($_GET['cleanup_value']); switch ($cleanup_by) { // clean by lvl case "char_lvl": $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 FROM `characters` WHERE level {$cleanup_sign} {$cleanup_value}"); $total_chars = $sql->num_rows($result); $output .= "<center>"; if ($total_chars) { $output .= "<h1><font class=\"error\">{$lang_global['are_you_sure']}</font></h1><br />"; $output .= "<form action=\"cleanup.php?action=docleanup\" method=\"post\" name=\"form\">\r\n <input type=\"hidden\" name=\"type\" value=\"char\" />\r\n <font class=\"bold\">{$lang_cleanup['chars_id']}: "; $pass_array = ""; while ($char = $sql->fetch_row($result)) { $output .= "<a href=\"char.php?id={$char['0']}\" target=\"_blank\">{$char['0']}, </a>"; $pass_array .= "-{$char['0']}"; } $output .= "<input type=\"hidden\" name=\"check\" value=\"{$pass_array}\" />"; $output .= "<br />{$lang_cleanup['tot_of']} {$total_chars} {$lang_global['will_be_erased']}</font><br /><br />"; $output .= "<table class=\"hidden\">\r\n <tr><td>"; makebutton($lang_global['yes'], "javascript:do_submit()", 120); makebutton($lang_global['no'], "cleanup.php", 120); $output .= "</td></tr>\r\n </table>\r\n </form>"; } else { $output .= "<h1><font class=\"error\">{$lang_global['err_no_records_found']}</font></h1><br />"; $output .= "<table class=\"hidden\">\r\n <tr><td>"; makebutton($lang_global['go_back'], "cleanup.php", 120); $output .= "</td></tr>\r\n </table>"; } $output .= "</center><br />"; break; //last loggin //last loggin case "last_login": $sql->connect($realm_db['addr'], $realm_db['user'], $realm_db['pass'], $realm_db['name']); $result = $sql->query("SELECT id FROM account WHERE last_login {$cleanup_sign} '{$cleanup_value}' AND gmlevel < {$user_lvl}"); $total_accounts = $sql->num_rows($result); $output .= "<center>"; if ($total_accounts) { $output .= "<h1><font class=\"error\">{$lang_global['are_you_sure']}</font></h1><br />"; $output .= "<form action=\"cleanup.php?action=docleanup\" method=\"post\" name=\"form\">\r\n <input type=\"hidden\" name=\"type\" value=\"acc\" />\r\n <font class=\"bold\">{$lang_cleanup['acc_ids']}: "; $pass_array = ""; while ($acc = $sql->fetch_row($result)) { $output .= "<a href=\"user.php?action=edit_user&id={$acc['0']}\" target=\"_blank\">{$acc['0']}, </a>"; $pass_array .= "-{$acc['0']}"; } $output .= "<input type=\"hidden\" name=\"check\" value=\"{$pass_array}\" />"; $output .= "<br />{$lang_cleanup['tot_of']} {$total_accounts} {$lang_global['will_be_erased']}</font><br /><br />"; $output .= "<table class=\"hidden\">\r\n <tr><td>"; makebutton($lang_global['yes'], "javascript:do_submit()", 120); makebutton($lang_global['no'], "cleanup.php", 120); $output .= "</td></tr>\r\n </table>\r\n </form>"; } else { $output .= "<h1><font class=\"error\">{$lang_global['err_no_records_found']}</font></h1><br />"; $output .= "<table class=\"hidden\">\r\n <tr><td>"; makebutton($lang_global['go_back'], "cleanup.php", 120); $output .= "</td></tr>\r\n </table>"; } $output .= "</center><br />"; break; //failed loggin attempts //failed loggin attempts case "failed_login": $sql->connect($realm_db['addr'], $realm_db['user'], $realm_db['pass'], $realm_db['name']); $result = $sql->query("SELECT id FROM account WHERE failed_logins {$cleanup_sign} {$cleanup_value} AND gmlevel < {$user_lvl}"); $total_accounts = $sql->num_rows($result); $output .= "<center>"; if ($total_accounts) { $output .= "<h1><font class=\"error\">{$lang_global['are_you_sure']}</font></h1><br />"; $output .= "<form action=\"cleanup.php?action=docleanup\" method=\"post\" name=\"form\">\r\n <input type=\"hidden\" name=\"type\" value=\"acc\" />\r\n <font class=\"bold\">{$lang_cleanup['acc_ids']}: "; $pass_array = ""; while ($acc = $sql->fetch_row($result)) { $output .= "<a href=\"user.php?action=edit_user&id={$acc['0']}\" target=\"_blank\">{$acc['0']}, </a>"; $pass_array .= "-{$acc['0']}"; } $output .= "<input type=\"hidden\" name=\"check\" value=\"{$pass_array}\" />"; $output .= "<br />{$lang_cleanup['tot_of']} {$total_accounts} {$lang_global['will_be_erased']}</font><br /><br />"; $output .= "<table class=\"hidden\">\r\n <tr><td>"; makebutton($lang_global['yes'], "javascript:do_submit()", 120); makebutton($lang_global['no'], "cleanup.php", 120); $output .= "</td></tr>\r\n </table>\r\n </form>"; } else { $output .= "<h1><font class=\"error\">{$lang_global['err_no_records_found']}</font></h1><br />"; $output .= "<table class=\"hidden\">\r\n <tr><td>"; makebutton($lang_global['go_back'], "cleanup.php", 120); $output .= "</td></tr>\r\n </table>"; } $output .= "</center><br />"; break; //clean banned accounts //clean banned accounts case "banned": $sql->connect($realm_db['addr'], $realm_db['user'], $realm_db['pass'], $realm_db['name']); $result = $sql->query("SELECT id FROM account_banned"); $total_accounts = $sql->num_rows($result); $output .= "<center>"; if ($total_accounts) { $output .= "<h1><font class=\"error\">{$lang_global['are_you_sure']}</font></h1><br />"; $output .= "<form action=\"cleanup.php?action=docleanup\" method=\"post\" name=\"form\">\r\n <input type=\"hidden\" name=\"type\" value=\"acc\" />\r\n <font class=\"bold\">{$lang_cleanup['acc_ids']}: "; $pass_array = ""; while ($acc = $sql->fetch_row($result)) { $output .= "<a href=\"user.php?action=edit_user&id={$acc['0']}\" target=\"_blank\">{$acc['0']}, </a>"; $pass_array .= "-{$acc['0']}"; } $output .= "<input type=\"hidden\" name=\"check\" value=\"{$pass_array}\" />"; $output .= "<br />{$lang_cleanup['tot_of']} {$total_accounts} {$lang_global['will_be_erased']}</font><br /><br />"; $output .= " <table class=\"hidden\">\r\n <tr><td>"; makebutton($lang_global['yes'], "javascript:do_submit()", 120); makebutton($lang_global['no'], "cleanup.php", 120); $output .= "</td></tr>\r\n </table>\r\n </form>"; } else { $output .= "<h1><font class=\"error\">{$lang_global['err_no_records_found']}</font></h1><br />"; $output .= "<table class=\"hidden\">\r\n <tr><td>"; makebutton($lang_global['go_back'], "cleanup.php", 120); $output .= "</td></tr>\r\n </table>"; } $output .= "</center><br />"; break; //clean chars with given total time played //clean chars with given total time played case "totaltime": $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 FROM `characters` WHERE totaltime {$cleanup_sign} {$cleanup_value}"); $total_chars = $sql->num_rows($result); $output .= "<center>"; if ($total_chars) { $output .= "<h1><font class=\"error\">{$lang_global['are_you_sure']}</font></h1><br />"; $output .= "<form action=\"cleanup.php?action=docleanup\" method=\"post\" name=\"form\">\r\n <input type=\"hidden\" name=\"type\" value=\"char\" />\r\n <font class=\"bold\">{$lang_cleanup['chars_id']}: "; $pass_array = ""; while ($char = $sql->fetch_row($result)) { $output .= "<a href=\"char.php?id={$char['0']}\" target=\"_blank\">{$char['0']}, </a>"; $pass_array .= "-{$char['0']}"; } $output .= "<input type=\"hidden\" name=\"check\" value=\"{$pass_array}\" />"; $output .= "<br />{$lang_cleanup['tot_of']} {$total_chars} {$lang_global['will_be_erased']}</font><br /><br />"; $output .= " <table class=\"hidden\">\r\n <tr><td>"; makebutton($lang_global['yes'], "javascript:do_submit()", 120); makebutton($lang_global['no'], "cleanup.php", 120); $output .= "</td></tr>\r\n </table>\r\n </form>"; } else { $output .= "<h1><font class=\"error\">{$lang_global['err_no_records_found']}</font></h1><br />"; $output .= "<table class=\"hidden\">\r\n <tr><td>"; makebutton($lang_global['go_back'], "cleanup.php", 120); $output .= "</td></tr>\r\n </table>"; } $output .= "</center><br />"; break; //clean locked acc //clean locked acc case "locked": $sql->connect($realm_db['addr'], $realm_db['user'], $realm_db['pass'], $realm_db['name']); $result = $sql->query("SELECT id FROM account WHERE locked {$cleanup_sign} {$cleanup_value} AND gmlevel < {$user_lvl}"); $total_accounts = $sql->num_rows($result); $output .= "<center>"; if ($total_accounts) { $output .= "<h1><font class=\"error\">{$lang_global['are_you_sure']}</font></h1><br />"; $output .= "<form action=\"cleanup.php?action=docleanup\" method=\"post\" name=\"form\">\r\n <input type=\"hidden\" name=\"type\" value=\"acc\" />\r\n <font class=\"bold\">{$lang_cleanup['acc_ids']}: "; $pass_array = ""; while ($acc = $sql->fetch_row($result)) { $output .= "<a href=\"user.php?action=edit_user&id={$acc['0']}\" target=\"_blank\">{$acc['0']}, </a>"; $pass_array .= "-{$acc['0']}"; } $output .= "<input type=\"hidden\" name=\"check\" value=\"{$pass_array}\" />"; $output .= "<br />{$lang_cleanup['tot_of']} {$total_accounts} {$lang_global['will_be_erased']}</font><br /><br />"; $output .= "<table class=\"hidden\">\r\n <tr><td>"; makebutton($lang_global['yes'], "javascript:do_submit()", 120); makebutton($lang_global['no'], "cleanup.php", 120); $output .= "</td></tr>\r\n </table>\r\n </form>"; } else { $output .= "<h1><font class=\"error\">{$lang_global['err_no_records_found']}</font></h1><br />"; $output .= "<table class=\"hidden\">\r\n <tr><td>"; makebutton($lang_global['go_back'], "cleanup.php", 120); $output .= "</td></tr>\r\n </table>"; } $output .= "</center><br />"; break; //accounts without chars or specified number of chars //accounts without chars or specified number of chars case "num_of_char_in_acc": $sql->connect($realm_db['addr'], $realm_db['user'], $realm_db['pass'], $realm_db['name']); $result = $sql->query("SELECT id FROM account WHERE gmlevel < {$user_lvl}"); $acc_output_array = array(); while ($acc = $sql->fetch_row($result)) { $total_chars_in_acc = 0; foreach ($characters_db as $db) { $sql->connect($db['addr'], $db['user'], $db['pass'], $db['name']); $query = $sql->query("SELECT count(*) FROM `characters` WHERE account = '{$acc['0']}'"); $total_chars_in_acc = $total_chars_in_acc + $sql->result($query, 0); } switch ($cleanup_sign) { case "=": if ($total_chars_in_acc == $cleanup_value) { array_push($acc_output_array, $acc[0]); } break; case "<": if ($total_chars_in_acc < $cleanup_value) { array_push($acc_output_array, $acc[0]); } break; case "<=": if ($total_chars_in_acc <= $cleanup_value) { array_push($acc_output_array, $acc[0]); } break; case ">": if ($total_chars_in_acc > $cleanup_value) { array_push($acc_output_array, $acc[0]); } break; case ">=": if ($total_chars_in_acc >= $cleanup_value) { array_push($acc_output_array, $acc[0]); } break; case "!=": if ($total_chars_in_acc != $cleanup_value) { array_push($acc_output_array, $acc[0]); } break; default: redirect("cleanup.php?error=1"); } } $output .= "<center>"; if ($acc_output_array) { $output .= "<h1><font class=\"error\">{$lang_global['are_you_sure']}</font></h1><br />"; $output .= "<form action=\"cleanup.php?action=docleanup\" method=\"post\" name=\"form\">\r\n <input type=\"hidden\" name=\"type\" value=\"acc\" />\r\n <font class=\"bold\">{$lang_cleanup['acc_ids']}: "; $pass_array = ""; for ($i = 0; $i < count($acc_output_array); $i++) { $output .= "<a href=\"user.php?action=edit_user&id={$acc_output_array[$i]}\" target=\"_blank\">{$acc_output_array[$i]}, </a>"; $pass_array .= "-{$acc_output_array[$i]}"; } $output .= "<input type=\"hidden\" name=\"check\" value=\"{$pass_array}\" />"; $output .= "<br />{$lang_cleanup['tot_of']} " . count($acc_output_array) . " {$lang_global['will_be_erased']}</font><br /><br />"; $output .= " <table class=\"hidden\">\r\n <tr><td>"; makebutton($lang_global['yes'], "javascript:do_submit()", 120); makebutton($lang_global['no'], "cleanup.php", 120); $output .= "</td></tr>\r\n </table>\r\n </form>"; } else { $output .= "<h1><font class=\"error\">{$lang_global['err_no_records_found']}</font></h1><br />"; $output .= "<table class=\"hidden\">\r\n <tr><td>"; makebutton($lang_global['go_back'], "cleanup.php", 120); $output .= "</td></tr>\r\n </table>"; } $output .= "</center><br />"; break; //guild without chars or specified number of chars //guild without chars or specified number of chars case "num_of_char_in_guild": $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 guildid FROM guild"); $guild_output_array = array(); while ($guild = $sql->fetch_row($result)) { $query = $sql->query("SELECT count(*) FROM guild_member WHERE guildid = '{$guild['0']}'"); $total_chars_in_guild = $sql->result($query, 0); switch ($cleanup_sign) { case "=": if ($total_chars_in_guild == $cleanup_value) { array_push($guild_output_array, $guild[0]); } break; case "<": if ($total_chars_in_guild < $cleanup_value) { array_push($guild_output_array, $guild[0]); } break; case "<=": if ($total_chars_in_guild <= $cleanup_value) { array_push($guild_output_array, $guild[0]); } break; case ">": if ($total_chars_in_guild > $cleanup_value) { array_push($guild_output_array, $guild[0]); } break; case ">=": if ($total_chars_in_guild >= $cleanup_value) { array_push($guild_output_array, $guild[0]); } break; case "!=": if ($total_chars_in_guild != $cleanup_value) { array_push($guild_output_array, $guild[0]); } break; default: redirect("cleanup.php?error=1"); } } $output .= "<center>"; if ($guild_output_array) { $output .= "<h1><font class=\"error\">{$lang_global['are_you_sure']}</font></h1><br />"; $output .= "<form action=\"cleanup.php?action=docleanup\" method=\"post\" name=\"form\">\r\n <input type=\"hidden\" name=\"type\" value=\"guild\" />\r\n <font class=\"bold\">{$lang_cleanup['guilds_id']}: "; $pass_array = ""; for ($i = 0; $i < count($guild_output_array); $i++) { $output .= "<a href=\"guild.php?action=view_guild&error=3&id={$guild_output_array[$i]}\" target=\"_blank\">{$guild_output_array[$i]}, </a>"; $pass_array .= "-{$guild_output_array[$i]}"; } $output .= "<input type=\"hidden\" name=\"check\" value=\"{$pass_array}\" />"; $output .= "<br />{$lang_cleanup['tot_of']} " . count($guild_output_array) . " {$lang_global['will_be_erased']}</font><br /><br />"; $output .= " <table class=\"hidden\">\r\n <tr><td>"; makebutton($lang_global['yes'], "javascript:do_submit()", 120); makebutton($lang_global['no'], "cleanup.php", 120); $output .= "</td></tr>\r\n </table>\r\n </form>"; } else { $output .= "<h1><font class=\"error\">{$lang_global['err_no_records_found']}</font></h1><br />"; $output .= "<table class=\"hidden\">\r\n <tr><td>"; makebutton($lang_global['go_back'], "cleanup.php", 120); $output .= "</td></tr>\r\n </table>"; } $output .= "</center><br />"; break; default: redirect("Location: cleanup.php?error=1"); } $sql->close(); unset($sql); }
function browse_tele() { global $lang_tele, $lang_global, $output, $world_db, $realm_id, $mmfpm_db, $itemperpage, $action_permission, $user_lvl; $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']); //==========================$_GET and SECURE================================= $start = isset($_GET['start']) ? $sqlw->quote_smart($_GET['start']) : 0; if (is_numeric($start)) { } else { $start = 0; } $order_by = isset($_GET['order_by']) ? $sqlw->quote_smart($_GET['order_by']) : "id"; if (!preg_match("/^[_[:lower:]]{1,12}\$/", $order_by)) { $order_by = "id"; } $dir = isset($_GET['dir']) ? $sqlw->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============================= //==========================Browse/Search CHECK============================== $search_by = ''; $search_value = ''; if (isset($_GET['search_value']) && isset($_GET['search_by'])) { $search_value = $sqlw->quote_smart($_GET['search_value']); $search_by = $sqlw->quote_smart($_GET['search_by']); $search_menu = array("name", "id", "map"); if (!in_array($search_by, $search_menu)) { $search_by = 'name'; } unset($search_menu); if (preg_match('/^[\\t\\v\\b\\f\\a\\n\\r\\\\"\'\\? <>[](){}_=+-|!@#$%^&*~`.,0123456789\\0]{1,30}$/', $search_value)) { redirect("tele.php?error=1"); } $query_1 = $sqlw->query("SELECT count(*) FROM game_tele WHERE {$search_by} LIKE '%{$search_value}%'"); $query = $sqlw->query("SELECT id, name, map, position_x, position_y, position_z, orientation\n FROM game_tele WHERE {$search_by} LIKE '%{$search_value}%' ORDER BY {$order_by} {$order_dir} LIMIT {$start}, {$itemperpage}"); } else { $query_1 = $sqlw->query("SELECT count(*) FROM game_tele"); $query = $sqlw->query("SELECT id, name, map, position_x, position_y, position_z, orientation\n FROM game_tele ORDER BY {$order_by} {$order_dir} LIMIT {$start}, {$itemperpage}"); } $all_record = $sqlw->result($query_1, 0); unset($query_1); //=====================top tage navigaion starts here======================== $output .= "\n <center>\n <table class=\"top_hidden\">\n <tr>\n <td>"; if ($user_lvl >= $action_permission['insert']) { makebutton($lang_tele['add_new'], "tele.php?action=add_tele", 130); } makebutton($lang_global['back'], "javascript:window.history.back()", 130); $search_by && $search_value ? makebutton($lang_tele['teleports'], "tele.php\" type=\"def", 130) : ($output .= ""); $output .= "\n </td>\n <td width=\"25%\" align=\"right\" rowspan=\"2\">"; $output .= generate_pagination("tele.php?order_by={$order_by}&dir=" . ($dir ? 0 : 1) . ($search_value && $search_by ? "&search_by={$search_by}&search_value={$search_value}" : ""), $all_record, $itemperpage, $start); $output .= "\n </td>\n </tr>\n <tr align=\"left\">\n <td>\n <table class=\"hidden\">\n <tr>\n <td>\n <form action=\"tele.php\" method=\"get\" name=\"form\">\n <input type=\"hidden\" name=\"error\" value=\"4\" />\n <input type=\"text\" size=\"24\" name=\"search_value\" value=\"{$search_value}\" />\n <select name=\"search_by\">\n <option value=\"name\"" . ($search_by == 'name' ? " selected=\"selected\"" : "") . ">{$lang_tele['loc_name']}</option>\n <option value=\"id\"" . ($search_by == 'id' ? " selected=\"selected\"" : "") . ">{$lang_tele['loc_id']}</option>\n <option value=\"map\"" . ($search_by == 'map' ? " selected=\"selected\"" : "") . ">{$lang_tele['on_map']}</option>\n </select>\n </form>\n </td>\n <td>"; makebutton($lang_global['search'], "javascript:do_submit()", 80); $output .= "\n </td>\n </tr>\n </table>\n </td>\n </tr>\n </table>"; //======================top tage navigaion ENDS here ======================== $output .= "\n <script type=\"text/javascript\">\n answerbox.btn_ok='{$lang_global['yes']}';\n answerbox.btn_cancel='{$lang_global['no']}';\n var question = '{$lang_global['are_you_sure']}';\n var del_tele = 'tele.php?action=del_tele&order_by={$order_by}&start={$start}&dir={$dir}&id=';\n </script>\n <table class=\"lined\">\n <tr>"; if ($user_lvl >= $action_permission['delete']) { $output .= "\n <th width=\"5%\">{$lang_global['delete_short']}</th>"; } $output .= "\n <th width=\"5%\"><a href=\"tele.php?order_by=id&start={$start}" . ($search_value && $search_by ? "&search_by={$search_by}&search_value={$search_value}" : "") . "&dir={$dir}\"" . ($order_by == 'id' ? " class=\"{$order_dir}\"" : "") . ">{$lang_tele['id']}</a></th>\n <th width=\"28%\"><a href=\"tele.php?order_by=name&start={$start}" . ($search_value && $search_by ? "&search_by={$search_by}&search_value={$search_value}" : "") . "&dir={$dir}\"" . ($order_by == 'name' ? " class=\"{$order_dir}\"" : "") . ">{$lang_tele['name']}</a></th>\n <th width=\"22%\"><a href=\"tele.php?order_by=map&start={$start}" . ($search_value && $search_by ? "&search_by={$search_by}&search_value={$search_value}" : "") . "&dir={$dir}\"" . ($order_by == 'map' ? " class=\"{$order_dir}\"" : "") . ">{$lang_tele['map']}</a></th>\n <th width=\"9%\"><a href=\"tele.php?order_by=position_x&start={$start}" . ($search_value && $search_by ? "&search_by={$search_by}&search_value={$search_value}" : "") . "&dir={$dir}\"" . ($order_by == 'position_x' ? " class=\"{$order_dir}\"" : "") . ">{$lang_tele['x']}</a></th>\n <th width=\"9%\"><a href=\"tele.php?order_by=position_y&start={$start}" . ($search_value && $search_by ? "&search_by={$search_by}&search_value={$search_value}" : "") . "&dir={$dir}\"" . ($order_by == 'position_y' ? " class=\"{$order_dir}\"" : "") . ">{$lang_tele['y']}</a></th>\n <th width=\"9%\"><a href=\"tele.php?order_by=position_z&start={$start}" . ($search_value && $search_by ? "&search_by={$search_by}&search_value={$search_value}" : "") . "&dir={$dir}\"" . ($order_by == 'position_z' ? " class=\"{$order_dir}\"" : "") . ">{$lang_tele['z']}</a></th>\n <th width=\"10%\"><a href=\"tele.php?order_by=orientation&start={$start}" . ($search_value && $search_by ? "&search_by={$search_by}&search_value={$search_value}" : "") . "&dir={$dir}\"" . ($order_by == 'orientation' ? " class=\"{$order_dir}\"" : "") . ">{$lang_tele['orientation']}</a></th>\n </tr>"; $sqlm = new SQL(); $sqlm->connect($mmfpm_db['addr'], $mmfpm_db['user'], $mmfpm_db['pass'], $mmfpm_db['name']); while ($data = $sqlw->fetch_row($query)) { $output .= "\n <tr>"; if ($user_lvl >= $action_permission['delete']) { $output .= "\n <td><img src=\"img/aff_cross.png\" alt=\"\" onclick=\"answerBox('{$lang_global['delete']}: <font color=white>{$data[1]}</font><br /> ' + question, del_tele + {$data['0']});\" style=\"cursor:pointer;\" /></td>"; } $output .= "\n <td>{$data['0']}</td>\n <td>"; if ($user_lvl >= $action_permission['update']) { $output .= "\n <a href=\"tele.php?action=edit_tele&id={$data['0']}\">{$data['1']}</a>"; } else { $output .= "{$data['1']}"; } $output .= "\n </td>\n <td>" . get_map_name($data[2], $sqlm) . " ({$data['2']})</td>\n <td>{$data['3']}</td>\n <td>{$data['4']}</td>\n <td>{$data['5']}</td>\n <td>{$data['6']}</td>\n </tr>"; } unset($query); unset($data); $output .= "\n <tr>\n <td colspan=\"7\" class=\"hidden\" align=\"right\" width=\"25%\">"; $output .= generate_pagination("tele.php?order_by={$order_by}&dir=" . ($dir ? 0 : 1) . ($search_value && $search_by ? "&search_by={$search_by}&search_value={$search_value}" : ""), $all_record, $itemperpage, $start); $output .= "\n </td>\n </tr>\n <tr>\n <td colspan=\"7\" class=\"hidden\" align=\"right\">{$lang_tele['tot_locations']} : {$all_record}</td>\n </tr>\n </table>\n </center>\n"; }
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 do_edit_char() { global $lang_global, $lang_char, $output, $realm_db, $characters_db, $realm_id, $action_permission, $user_lvl, $world_db; valid_login($action_permission['delete']); if (empty($_GET['id']) || empty($_GET['name'])) { 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']); $id = $sql->quote_smart($_GET['id']); $result = $sql->query("SELECT account, online FROM characters WHERE guid = '{$id}'"); if ($sql->num_rows($result)) { //we cannot edit online chars if (!$sql->result($result, 0, 'online')) { //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 FROM account_access WHERE id ='{$owner_acc_id}' and (`RealmID` = {$realm_id} or `RealmID` = -1)"); $owner_gmlvl = $sql->result($query, 0, 'gmlevel'); $new_owner_name = $_GET['owner_name']; $query = $sql->query("SELECT id FROM account WHERE username ='******'"); $new_owner_acc_id = $sql->result($query, 0, 'id'); if ($owner_acc_id != $new_owner_acc_id) { $max_players = $sql->query("SELECT numchars FROM realmcharacters WHERE acctid ='{$new_owner_acc_id}'"); $max_players = $max_players[0]; if ($max_players <= 9) { $result = $sql->query("UPDATE `{$characters_db[$realm_id]['name']}`.`characters` SET account = {$new_owner_acc_id} WHERE guid = {$id}"); } else { redirect("char_edit.php?action=edit_char&id={$id}&error=5"); } } if ($user_lvl > $owner_gmlvl) { if (isset($_GET['check'])) { $check = $sql->quote_smart($_GET['check']); } else { $check = NULL; } $new_name = $sql->quote_smart($_GET['name']); if (isset($_GET['tot_time'])) { $new_tot_time = $sql->quote_smart($_GET['tot_time']); } else { $new_tot_time = 0; } if (isset($_GET['money'])) { $new_money = $sql->quote_smart($_GET['money']); } else { $new_money = 0; } if (isset($_GET['arena_points'])) { $new_arena_points = $sql->quote_smart($_GET['arena_points']); } else { $new_arena_points = 0; } if (isset($_GET['honor_points'])) { $new_honor_points = $sql->quote_smart($_GET['honor_points']); } else { $new_honor_points = 0; } if (isset($_GET['total_kills'])) { $new_total_kills = $sql->quote_smart($_GET['total_kills']); } else { $new_total_kills = 0; } if (!is_numeric($new_tot_time) || !is_numeric($new_money) || !is_numeric($new_arena_points) || !is_numeric($new_honor_points)) { error($lang_char['use_numeric']); } $x = isset($_GET['x']) ? $sql->quote_smart($_GET['x']) : 0; $y = isset($_GET['y']) ? $sql->quote_smart($_GET['y']) : 0; $z = isset($_GET['z']) ? $sql->quote_smart($_GET['z']) : 0; $map = isset($_GET['map']) ? $sql->quote_smart($_GET['map']) : 0; $tp_to = isset($_GET['tp_to']) ? $sql->quote_smart($_GET['tp_to']) : 0; $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 equipmentCache FROM characters WHERE guid = '{$id}'"); $char = $sql->fetch_row($result); $eq_data = explode(' ', $char[0]); //some items need to be deleted if ($check) { $item_offset = array("a0" => EQ_DATA_OFFSET_EQU_HEAD, "a1" => EQ_DATA_OFFSET_EQU_NECK, "a2" => EQ_DATA_OFFSET_EQU_SHOULDER, "a3" => EQ_DATA_OFFSET_EQU_SHIRT, "a4" => EQ_DATA_OFFSET_EQU_CHEST, "a5" => EQ_DATA_OFFSET_EQU_BELT, "a6" => EQ_DATA_OFFSET_EQU_LEGS, "a7" => EQ_DATA_OFFSET_EQU_FEET, "a8" => EQ_DATA_OFFSET_EQU_WRIST, "a9" => EQ_DATA_OFFSET_EQU_GLOVES, "a10" => EQ_DATA_OFFSET_EQU_FINGER1, "a11" => EQ_DATA_OFFSET_EQU_FINGER2, "a12" => EQ_DATA_OFFSET_EQU_TRINKET1, "a13" => EQ_DATA_OFFSET_EQU_TRINKET2, "a14" => EQ_DATA_OFFSET_EQU_BACK, "a15" => EQ_DATA_OFFSET_EQU_MAIN_HAND, "a16" => EQ_DATA_OFFSET_EQU_OFF_HAND, "a17" => EQ_DATA_OFFSET_EQU_RANGED, "a18" => EQ_DATA_OFFSET_EQU_TABARD); foreach ($check as $item_num) { //deleting equiped items if ($item_num[0] == "a") { $eq_data[$item_offset[$item_num]] = 0; sscanf($item_num, "a%d", $item_num); $result = $sql->query("SELECT item FROM character_inventory WHERE guid = '{$id}' AND slot = {$item_num} AND bag = 0"); $item_inst_id = $sql->result($result, 0, 'item'); $sql->query("DELETE FROM character_inventory WHERE guid = '{$id}' AND slot = {$item_num} AND bag = 0"); $sql->query("DELETE FROM item_instance WHERE guid = '{$item_inst_id}' AND owner_guid = '{$id}'"); } else { //deleting inv/bank items $sql->query("DELETE FROM character_inventory WHERE guid = '{$id}' AND item = '{$item_num}'"); $sql->query("DELETE FROM item_instance WHERE guid = '{$item_num}' AND owner_guid = '{$id}'"); } } } $data = implode(' ', $eq_data); if ($tp_to) { $query = $sql->query("SELECT map, position_x, position_y, position_z, orientation FROM `" . $world_db[$realm_id]['name'] . "`.`game_tele` WHERE LOWER(name) = '" . strtolower($tp_to) . "'"); $tele = $sql->fetch_row($query); if ($tele) { $teleport = "map='{$tele['0']}', position_x='{$tele['1']}', position_y='{$tele['2']}', position_z='{$tele['3']}', orientation='{$tele['4']}',"; } else { error($lang_char['no_tp_location']); } } else { $teleport = "map='{$map}', position_x='{$x}', position_y='{$y}', position_z='{$z}',"; } $result = $sql->query("UPDATE characters SET equipmentCache = '{$data}', name = '{$new_name}', {$teleport} totaltime = '{$new_tot_time}', money = '{$new_money}', arenaPoints = '{$new_arena_points}', totalHonorPoints = '{$new_honor_points}', totalKills = '{$new_total_kills}' WHERE guid = {$id}"); $sql->close(); unset($sql); if ($result) { redirect("char_edit.php?action=edit_char&id={$id}&error=3"); } else { redirect("char_edit.php?action=edit_char&id={$id}&error=4"); } } else { $sql->close(); unset($sql); error($lang_char['no_permission']); } } else { $sql->close(); unset($sql); redirect("char_edit.php?action=edit_char&id={$id}&error=2"); } } else { error($lang_char['no_char_found']); } $sql->close(); unset($sql); }
function events() { global $output, $lang_events, $realm_id, $world_db, $itemperpage; $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']); //-------------------SQL Injection Prevention-------------------------------- // this page has multipage support and field ordering, so we need these $start = isset($_GET['start']) ? $sqlw->quote_smart($_GET['start']) : 0; if (is_numeric($start)) { } else { $start = 0; } $order_by = isset($_GET['order_by']) ? $sqlw->quote_smart($_GET['order_by']) : 'description'; if (preg_match('/^[_[:lower:]]{1,11}$/', $order_by)) { } else { $order_by = 'description'; } $dir = isset($_GET['dir']) ? $sqlw->quote_smart($_GET['dir']) : 1; if (preg_match('/^[01]{1}$/', $dir)) { } else { $dir = 1; } $order_dir = $dir ? 'ASC' : 'DESC'; $dir = $dir ? 0 : 1; // for multipage support $all_record = $sqlw->result($sqlw->query('SELECT count(*) FROM game_event WHERE start_time <> end_time'), 0); // main data that we need for this page, game events $result = $sqlw->query('SELECT description, start_time, occurence, length FROM game_event WHERE start_time <> end_time ORDER BY ' . $order_by . ' ' . $order_dir . ' LIMIT ' . $start . ', ' . $itemperpage . ''); //---------------Page Specific Data Starts Here-------------------------- // 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 events.php --> <center> <table class="top_hidden"> <tr> <td width="25%" align="right">'; // multi page links $output .= $lang_events['total'] . ' : ' . $all_record . '<br /><br />' . generate_pagination('events.php?order_by=' . $order_by . '&dir=' . ($dir ? 0 : 1), $all_record, $itemperpage, $start); // column headers, with links for sorting $output .= ' </td> </tr> </table> <table class="lined"> <tr> <th width="35%"><a href="events.php?order_by=description&start=' . $start . '&dir=' . $dir . '"' . ($order_by === 'description' ? ' class="' . $order_dir . '"' : '') . '>' . $lang_events['descr'] . '</a></th> <th width="25%"><a href="events.php?order_by=start_time&start=' . $start . '&dir=' . $dir . '"' . ($order_by === 'start_time' ? ' class="' . $order_dir . '"' : '') . '>' . $lang_events['start'] . '</a></th> <th width="20%"><a href="events.php?order_by=occurence&start=' . $start . '&dir=' . $dir . '"' . ($order_by === 'occurence' ? ' class="' . $order_dir . '"' : '') . '>' . $lang_events['occur'] . '</a></th> <th width="20%"><a href="events.php?order_by=length&start=' . $start . '&dir=' . $dir . '"' . ($order_by === 'length' ? ' class="' . $order_dir . '"' : '') . '>' . $lang_events['length'] . '</a></th> </tr>'; while ($events = $sqlw->fetch_assoc($result)) { $days = floor(round($events['occurence'] / 60) / 24); $hours = round($events['occurence'] / 60) - $days * 24; $event_occurance = ''; if ($days) { $event_occurance .= $days . ' days '; } if ($hours) { $event_occurance .= $hours . ' hours'; } $days = floor(round($events['length'] / 60) / 24); $hours = round($events['length'] / 60) - $days * 24; $event_duration = ''; if ($days) { $event_duration .= $days . ' days '; } if ($hours) { $event_duration .= $hours . ' hours'; } $output .= ' <tr valign="top"> <td align="left">' . $events['description'] . '</td> <td>' . $events['start_time'] . '</td> <td>' . $event_occurance . '</td> <td>' . $event_duration . '</td> </tr>'; } unset($event_duration); unset($event_occurance); unset($hours); unset($days); unset($events); unset($result); $output .= ' <tr> <td colspan="4" class="hidden" align="right" width="25%">'; // multi page links $output .= generate_pagination('events.php?order_by=' . $order_by . '&dir=' . ($dir ? 0 : 1), $all_record, $itemperpage, $start); unset($start); $output .= ' </td> </tr> <tr> <td colspan="4" class="hidden" align="right">' . $lang_events['total'] . ' : ' . $all_record . '</td> </tr> </table> </center> <!-- end of events.php -->'; }
function repair_form() { global $output, $lang_global, $lang_repair, $realm_db, $world_db, $characters_db, $mmfpm_db, $action_permission, $user_lvl; $output .= ' <center> <fieldset class="tquarter_frame"> <legend>' . $lang_repair['repair_optimize'] . '</legend> <form action="repair.php?action=do_repair" method="post" name="form">'; if ($user_lvl >= $action_permission['update']) { $output .= ' <table class="hidden"> <tr> <td> <select name="repair_action"> <option value="REPAIR">' . $lang_repair['repair'] . '</option> <option value="OPTIMIZE">' . $lang_repair['optimize'] . '</option> </select> </td> <td>'; makebutton($lang_repair['start'], 'javascript:do_submit()" type="wrn', 130); $output .= ' </td> <td>'; makebutton($lang_global['back'], 'javascript:window.history.back()" type="def', 130); $output .= ' </td> </tr> </table> <p>' . $lang_repair['select_tables'] . '</p>'; } $output .= ' <script type="text/javascript" src="libs/js/check.js"></script> <table style="width: 550px;" class="lined"> <tr>'; if ($user_lvl >= $action_permission['update']) { $output .= ' <th width="5%"><input name="allbox" type="checkbox" value="Check All" onclick="CheckAll(document.form);" /></th>'; } $output .= ' <th width="25%">' . $lang_repair['table_name'] . '</th> <th width="35%">' . $lang_repair['status'] . '</th> <th width="15%">' . $lang_repair['num_records'] . '</th> </tr> </table>'; $sql = new SQL(); $mm_dbs = array($realm_db, $mmfpm_db); foreach ($mm_dbs as $db) { $output .= ' <table style="width: 550px;" class="lined"> <tr class="large_bold"> <td colspan="3" class="hidden" align="left"> <div id="div' . $db['name'] . '" onclick="expand(\'' . $db['name'] . '\', this, \'' . $db['name'] . ' ' . $lang_repair['tables'] . ' :\');">[+] ' . $db['name'] . ' ' . $lang_repair['tables'] . ' :</div> </td> </tr> </table> <table id="' . $db['name'] . '" style="width: 550px; display: none;" class="lined">'; $sql->connect($db['addr'], $db['user'], $db['pass'], $db['name']); $result = $sql->query('SHOW TABLES FROM ' . $db['name'] . ''); while ($table = $sql->fetch_row($result)) { $result1 = $sql->query('SELECT count(*) FROM ' . $table[0] . ''); $result2 = $sql->query('CHECK TABLE ' . $table[0] . ' CHANGED'); $output .= ' <tr>'; if ($user_lvl >= $action_permission['update']) { $output .= ' <td> <input type="checkbox" name="check[]" value="db~0~' . $db['name'] . '~' . $table[0] . '" onclick="CheckCheckAll(document.form);" /> </td>'; } $output .= ' <td>' . $table[0] . '</td> <td>' . $sql->result($result2, 0, 'Msg_type') . ' : ' . $sql->result($result2, 0, 'Msg_text') . '</td> <td>' . $sql->result($result1, 0) . '</td> </tr>'; } $output .= ' </table>'; } $mm_dbs = array($world_db, $characters_db); foreach ($mm_dbs as $dbs) { foreach ($dbs as $dbr => $db) { $output .= ' <table style="width: 550px;" class="lined"> <tr class="large_bold"> <td colspan="3" class="hidden" align="left"> <div id="div' . $db['name'] . $dbr . '" onclick="expand(\'' . $db['name'] . $dbr . '\', this, \'' . $db['name'] . ' Realm ' . $dbr . ' Tables :\');">[+] ' . $db['name'] . ' Realm ' . $dbr . ' Tables :</div> </td> </tr> </table> <table id="' . $db['name'] . $dbr . '" style="width: 550px; display: none;" class="lined">'; $sql->connect($db['addr'], $db['user'], $db['pass'], $db['name']); $result = $sql->query('SHOW TABLES FROM ' . $db['name'] . ''); while ($table = $sql->fetch_row($result)) { $result1 = $sql->query('SELECT count(*) FROM ' . $table[0] . ''); $result2 = $sql->query('CHECK TABLE ' . $table[0] . ' CHANGED'); $output .= ' <tr>'; if ($user_lvl >= $action_permission['update']) { $output .= ' <td> <input type="checkbox" name="check[]" value="db~' . $dbr . '~' . $db['name'] . '~' . $table[0] . '" onclick="CheckCheckAll(document.form);" /> </td>'; } $output .= ' <td>' . $table[0] . '</td> <td>' . $sql->result($result2, 0, 'Msg_type') . ' : ' . $sql->result($result2, 0, 'Msg_text') . '</td> <td>' . $sql->result($result1, 0) . '</td> </tr>'; } $output .= ' </table>'; } } unset($dbs); unset($db); unset($result); unset($result2); unset($result1); unset($table); unset($mm_dbs); $output .= ' </form> </fieldset> <br /><br /> </center>'; }
function del_guild($guid, $realm) { global $characters_db, $tab_del_guild; require_once 'data_lib.php'; $sqlc = new SQL(); $sqlc->connect($characters_db[$realm]['addr'], $characters_db[$realm]['user'], $characters_db[$realm]['pass'], $characters_db[$realm]['name']); //clean data inside characters.data field while ($guild_member = $sqlc->result($sqlc->query('SELECT guid FROM guild_member WHERE guildid = ' . $guid . ''), 0)) { $data = $sqlc->result($sqlc->query('SELECT data FROM characters WHERE guid = ' . $guild_member . ''), 0); $data = explode(' ', $data); $data[CHAR_DATA_OFFSET_GUILD_ID] = 0; $data[CHAR_DATA_OFFSET_GUILD_RANK] = 0; $data = implode(' ', $data); $sqlc->query('UPDATE characters SET data = ' . $data . ' WHERE guid = ' . $guild_member . ''); } $sqlc->query('DELETE FROM item_instance WHERE guid IN (SELECT item_guid FROM guild_bank_item WHERE guildid =' . $guid . ')'); foreach ($tab_del_guild as $value) { $sqlr->query('DELETE FROM ' . $value[0] . ' WHERE ' . $value[1] . ' = ' . $guid . ''); } if ($sqlc->affected_rows()) { return true; } else { return false; } }
function send_mail() { global $lang_global, $output, $realm_db, $characters_db, $realm_id, $user_name, $from_mail, $mailer_type, $smtp_cfg; if (empty($_POST['body']) || empty($_POST['subject']) || empty($_POST['type']) || empty($_POST['group_sign']) || empty($_POST['group_send'])) { redirect("mail.php?error=1"); } $sqlr = new SQL(); $sqlr->connect($realm_db['addr'], $realm_db['user'], $realm_db['pass'], $realm_db['name']); $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']); $body = explode("\n", $_POST['body']); $subject = $sqlc->quote_smart($_POST['subject']); if (isset($_POST['to']) && $_POST['to'] != '') { $to = $sqlc->quote_smart($_POST['to']); } else { $to = 0; if (!isset($_POST['group_value']) || $_POST['group_value'] === '') { redirect("mail.php?error=1"); } else { $group_value = $sqlc->quote_smart($_POST['group_value']); $group_sign = $sqlc->quote_smart($_POST['group_sign']); $group_send = $sqlc->quote_smart($_POST['group_send']); } } $type = addslashes($_POST['type']); $att_gold = $sqlc->quote_smart($_POST['money']); $att_item = $sqlc->quote_smart($_POST['att_item']); $att_stack = $sqlc->quote_smart($_POST['att_stack']); switch ($type) { case "email": require_once "libs/mailer/class.phpmailer.php"; $mail = new PHPMailer(); $mail->Mailer = $mailer_type; if ($mailer_type == "smtp") { $mail->Host = $smtp_cfg['host']; $mail->Port = $smtp_cfg['port']; if ($smtp_cfg['user'] != '') { $mail->SMTPAuth = true; $mail->Username = $smtp_cfg['user']; $mail->Password = $smtp_cfg['pass']; } } $value = NULL; for ($i = 0; $i < count($body); $i++) { $value .= $body[$i] . "\r\n"; } $body = $value; $mail->From = $from_mail; $mail->FromName = $user_name; $mail->Subject = $subject; $mail->IsHTML(true); $body = str_replace("\n", "<br />", $body); $body = str_replace("\r", " ", $body); $body = str_replace(array("\r\n", "\n", "\r"), '<br />', $body); $body = preg_replace("/([^\\/=\"\\]])((http|ftp)+(s)?:\\/\\/[^<>\\s]+)/i", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $body); $body = preg_replace('/([^\\/=\\"\\]])(www\\.)(\\S+)/', '\\1<a href="http://\\2\\3" target="_blank">\\2\\3</a>', $body); $mail->Body = $body; $mail->WordWrap = 50; if ($to) { //single Recipient $mail->AddAddress($to); if (!$mail->Send()) { $mail->ClearAddresses(); redirect("mail.php?error=3&mail_err=" . $mail->ErrorInfo); } else { $mail->ClearAddresses(); redirect("mail.php?error=2"); } } elseif (isset($group_value)) { //group send $email_array = array(); switch ($group_send) { case "gm_level": $result = $sqlr->query("SELECT email FROM account WHERE gmlevel {$group_sign} '{$group_value}'"); while ($user = $sqlr->fetch_row($result)) { if ($user[0] != "") { array_push($email_array, $user[0]); } } break; case "locked": $result = $sqlr->query("SELECT email FROM account WHERE locked {$group_sign} '{$group_value}'"); while ($user = $sqlr->fetch_row($result)) { if ($user[0] != "") { array_push($email_array, $user[0]); } } break; case "banned": $que = $sqlr->query("SELECT id FROM account_banned"); while ($banned = $sql->fetch_row($que)) { $result = $sqlr->query("SELECT email FROM account WHERE id = '{$banned['0']}'"); if ($sqlr->result($result, 0, 'email')) { array_push($email_array, $sql->result($result, 0, 'email')); } } break; default: redirect("mail.php?error=5"); break; } foreach ($email_array as $mail_addr) { $mail->AddAddress($mail_addr); if (!$mail->Send()) { $mail->ClearAddresses(); redirect("mail.php?error=3&mail_err=" . $mail->ErrorInfo); } else { $mail->ClearAddresses(); } } redirect("mail.php?error=2"); } else { redirect("mail.php?error=1"); } break; case "ingame_mail": $value = NULL; for ($i = 0; $i < count($body); $i++) { $value .= $body[$i] . " "; } $body = $value; $body = str_replace("\r", " ", $body); if ($to) { //single Recipient $result = $sqlc->query("SELECT name FROM characters WHERE name = '{$to}'"); if ($sqlc->num_rows($result) == 1) { $receiver = $sqlc->result($result, 0, 'name'); $mails = array(); array_push($mails, array($receiver, $subject, $body, $att_gold, $att_item, $att_stack)); send_ingame_mail($realm_id, $mails); } else { redirect("mail.php?error=4"); } redirect("mail.php?error=2"); break; } elseif (isset($group_value)) { //group send $char_array = array(); switch ($group_send) { case "gm_level": $result = $sqlr->query("SELECT id FROM account WHERE gmlevel {$group_sign} '{$group_value}'"); while ($acc = $sqlc->fetch_row($result)) { $result_2 = $sqlc->query("SELECT name FROM `characters` WHERE account = '{$acc['0']}'"); while ($char = $sqlc->fetch_row($result_2)) { array_push($char_array, $char[0]); } } break; case "online": $result = $sqlc->query("SELECT name FROM `characters` WHERE online {$group_sign} '{$group_value}'"); while ($user = $sqlc->fetch_row($result)) { array_push($char_array, $user[0]); } break; case "char_level": $result = $sqlc->query("SELECT name FROM `characters` WHERE SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 35), ' ', -1) {$group_sign} '{$group_value}'"); while ($user = $sqlc->fetch_row($result)) { array_push($char_array, $user[0]); } break; default: redirect("mail.php?error=5"); } $mails = array(); foreach ($char_array as $receiver) { array_push($mails, array($receiver, $subject, $body, $att_gold, $att_item, $att_stack)); } send_ingame_mail($realm_id, $mails); redirect("mail.php?error=2"); } break; default: redirect("mail.php?error=1"); } }
function events() { global $output, $lang_events, $realm_id, $world_db, $itemperpage; $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']); //==========================$_GET and SECURE======================== // pagination and order by to prevent sql injection require_once './include/security.php'; $order_dir = $dir ? 'DESC' : 'ASC'; $dir = $dir ? 1 : 0; //==========================$_GET and SECURE end======================== // for multipage support $all_record = $sqlw->result($sqlw->query(' SELECT count(*) FROM game_event WHERE start_time <> end_time'), 0); // main data that we need for this page, game events $result = $sqlw->query(' SELECT entry, description, start_time, occurence, length FROM game_event WHERE start_time <> end_time ORDER BY ' . $order_by . ' ' . $order_dir . ' LIMIT ' . $start . ', ' . $itemperpage . ''); //---------------Page Specific Data Starts Here-------------------------- $output .= ' <center> <table class="top_hidden"> <tr> <td width="25%" align="right">'; // multi page links $output .= $lang_events['total'] . ' : ' . $all_record . '<br /><br />' . generate_pagination('events.php?order_by=' . $order_by . '&dir=' . ($dir ? 0 : 1), $all_record, $itemperpage, $start); // column headers, with links for sorting $output .= ' </td> </tr> </table> <table class="lined"> <tr> <th width="1%"><a href="events.php?order_by=entry&start=' . $start . '&dir=' . $dir . '"' . ($order_by === 'entry' ? ' class="' . $order_dir . '"' : '') . '>ID</a></th> <th width="34%"><a href="events.php?order_by=description&start=' . $start . '&dir=' . $dir . '"' . ($order_by === 'description' ? ' class="' . $order_dir . '"' : '') . '>' . $lang_events['descr'] . '</a></th> <th width="25%"><a href="events.php?order_by=start_time&start=' . $start . '&dir=' . $dir . '"' . ($order_by === 'start_time' ? ' class="' . $order_dir . '"' : '') . '>' . $lang_events['start'] . '</a></th> <th width="20%"><a href="events.php?order_by=occurence&start=' . $start . '&dir=' . $dir . '"' . ($order_by === 'occurence' ? ' class="' . $order_dir . '"' : '') . '>' . $lang_events['occur'] . '</a></th> <th width="20%"><a href="events.php?order_by=length&start=' . $start . '&dir=' . $dir . '"' . ($order_by === 'length' ? ' class="' . $order_dir . '"' : '') . '>' . $lang_events['length'] . '</a></th> </tr>'; while ($events = $sqlw->fetch_assoc($result)) { $days = floor(round($events['occurence'] / 60) / 24); $hours = round($events['occurence'] / 60) - $days * 24; $event_occurance = ''; if ($days) { $event_occurance .= $days . ' days '; } if ($hours) { $event_occurance .= $hours . ' hours'; } $days = floor(round($events['length'] / 60) / 24); $hours = round($events['length'] / 60) - $days * 24; $event_duration = ''; if ($days) { $event_duration .= $days . ' days '; } if ($hours) { $event_duration .= $hours . ' hours'; } $output .= ' <tr valign="top"> <td>' . $events['entry'] . '</td> <td align="left">' . $events['description'] . '</td> <td>' . $events['start_time'] . '</td> <td>' . $event_occurance . '</td> <td>' . $event_duration . '</td> </tr>'; } unset($event_duration); unset($event_occurance); unset($hours); unset($days); unset($events); unset($result); $output .= ' <tr> <td colspan="4" class="hidden" align="right" width="25%">'; // multi page links $output .= generate_pagination('events.php?order_by=' . $order_by . '&dir=' . ($dir ? 0 : 1), $all_record, $itemperpage, $start); unset($start); $output .= ' </td> </tr> <tr> <td colspan="4" class="hidden" align="right">' . $lang_events['total'] . ' : ' . $all_record . '</td> </tr> </table> </center>'; }
function get_item_icon($itemid, &$sqlm = 0, &$sqlw = 0) { global $mmfpm_db, $world_db, $realm_id, $proxy_cfg, $get_icons_from_web, $item_icons; // not all functions that call this function will pass reference to existing SQL links // so we need to check and overload when needed if (empty($sqlm)) { $sqlm = new SQL(); $sqlm->connect($mmfpm_db['addr'], $mmfpm_db['user'], $mmfpm_db['pass'], $mmfpm_db['name']); } if (empty($sqlw)) { $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 `displayid` FROM `item_template` WHERE `entry` = {$itemid} LIMIT 1"); if ($result) { $displayid = $sqlw->result($result, 0); } else { $result = $sqlm->query("SELECT `field_5` FROM `dbc_item` WHERE `id` = {$itemid} LIMIT 1"); if ($result) { $displayid = $sqlm->result($result, 0); } else { $displayid = 0; } } if ($displayid) { $result = $sqlm->query("SELECT `field_5` FROM `dbc_itemdisplayinfo` WHERE `id`={$displayid} LIMIT 1"); if ($result) { $item_uppercase = $sqlm->result($result, 0); $item = strtolower($item_uppercase); if ($item) { if (file_exists('' . $item_icons . '/' . $item . '.jpg')) { if (filesize('' . $item_icons . '/' . $item . '.jpg') > 349) { return '' . $item_icons . '/' . $item . '.jpg'; } else { $sqlm->query('DELETE FROM dbc_itemdisplayinfo WHERE id = ' . $displayid . ''); if (file_exists('' . $item_icons . '/' . $item . '.jpg')) { unlink('' . $item_icons . '/' . $item . '.jpg'); } $item = ''; } } else { $item = ''; } } else { $item = ''; } } else { $item = ''; } } else { $item = ''; } if ($get_icons_from_web) { $xmlfilepath = "http://www.wowhead.com/item="; $proxy = $proxy_cfg['addr']; $port = $proxy_cfg['port']; if (empty($proxy_cfg['addr'])) { $proxy = "www.wowhead.com"; $xmlfilepath = "item="; $port = 80; } if ($item == '') { //get the icon name $fp = @fsockopen($proxy, $port, $errno, $errstr, 0.5); if (!$fp) { return "img/INV/INV_blank_32.gif"; } $out = "GET /{$xmlfilepath}{$itemid} HTTP/1.0\r\nHost: www.wowhead.com\r\n"; if (!empty($proxy_cfg['user'])) { $out .= "Proxy-Authorization: Basic " . base64_encode("{$proxy_cfg['user']}:{$proxy_cfg['pass']}") . "\r\n"; } $out .= "Connection: Close\r\n\r\n"; $temp = ""; fwrite($fp, $out); while ($fp && !feof($fp)) { $temp .= fgets($fp, 4096); } fclose($fp); $wowhead_string = $temp; $temp_string1 = strstr($wowhead_string, "Icon.create("); $temp_string2 = substr($temp_string1, 12, 50); $temp_string3 = strtok($temp_string2, ','); $temp_string4 = substr($temp_string3, 1, strlen($temp_string3) - 2); $icon_name = $temp_string4; $item_uppercase = $icon_name; $item = strtolower($item_uppercase); } if (file_exists('' . $item_icons . '/' . $item . '.jpg')) { if (filesize('' . $item_icons . '/' . $item . '.jpg') > 349) { $sqlm->query('REPLACE INTO dbc_itemdisplayinfo (id, field_5) VALUES (\'' . $displayid . '\', \'' . $item . '\')'); return '' . $item_icons . '/' . $item . '.jpg'; } else { $sqlm->query('DELETE FROM dbc_itemdisplayinfo WHERE id = ' . $displayid . ''); if (file_exists('' . $item_icons . '/' . $item . '.jpg')) { unlink('' . $item_icons . '/' . $item . '.jpg'); } } } //get the icon itself if (empty($proxy_cfg['addr'])) { $proxy = "static.wowhead.com"; $port = 80; } $fp = @fsockopen($proxy, $port, $errno, $errstr, 0.5); if (!$fp) { return "img/INV/INV_blank_32.gif"; } $iconfilename = strtolower($item); $file = "http://static.wowhead.com/images/icons/medium/{$iconfilename}.jpg"; $out = "GET {$file} HTTP/1.0\r\nHost: static.wowhead.com\r\n"; if (!empty($proxy_cfg['user'])) { $out .= "Proxy-Authorization: Basic " . base64_encode("{$proxy_cfg['user']}:{$proxy_cfg['pass']}") . "\r\n"; } $out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out); //remove header while ($fp && !feof($fp)) { $headerbuffer = fgets($fp, 4096); if (urlencode($headerbuffer) == "%0D%0A") { break; } } if (file_exists('' . $item_icons . '/' . $item . '.jpg')) { if (filesize('' . $item_icons . '/' . $item . '.jpg') > 349) { $sqlm->query('REPLACE INTO dbc_itemdisplayinfo (id, field_5) VALUES (\'' . $displayid . '\', \'' . $item . '\')'); return '' . $item_icons . '/' . $item . '.jpg'; } else { $sqlm->query('DELETE FROM dbc_itemdisplayinfo WHERE id = ' . $displayid . ''); if (file_exists('' . $item_icons . '/' . $item . '.jpg')) { unlink('' . $item_icons . '/' . $item . '.jpg'); } } } $img_file = fopen("{$item_icons}/{$item}.jpg", 'wb'); while (!feof($fp)) { fwrite($img_file, fgets($fp, 4096)); } fclose($fp); fclose($img_file); if (file_exists('' . $item_icons . '/' . $item . '.jpg')) { if (filesize('' . $item_icons . '/' . $item . '.jpg') > 349) { $sqlm->query('REPLACE INTO dbc_itemdisplayinfo (id, field_5) VALUES (\'' . $displayid . '\', \'' . $item . '\')'); return '' . $item_icons . '/' . $item . '.jpg'; } else { $sqlm->query('DELETE FROM dbc_itemdisplayinfo WHERE id = ' . $displayid . ''); if (file_exists('' . $item_icons . '/' . $item . '.jpg')) { unlink('' . $item_icons . '/' . $item . '.jpg'); } } } else { return "img/INV/INV_blank_32.gif"; } } else { return "img/INV/INV_blank_32.gif"; } }
function do_edit_motd(&$sqlm) { global $action_permission, $user_name, $realm_id, $mmfpm_db; // minimum permission to view page valid_login($action_permission['update']); $sqlm = new SQL(); $sqlm->connect($mmfpm_db['addr'], $mmfpm_db['user'], $mmfpm_db['pass'], $mmfpm_db['name']); if (empty($_POST['msg']) || empty($_POST['id'])) { redirect('motd.php?error=1'); } $id = $sqlm->quote_smart($_POST['id']); if (is_numeric($id)) { } else { redirect('motd.php?error=1'); } $msg = $sqlm->quote_smart($_POST['msg']); if (4096 < strlen($msg)) { redirect('motd.php?error=2'); } $by = $sqlm->result($sqlm->query(' SELECT type FROM mm_motd WHERE id = ' . $id . ''), 0); $by = split('<br />', $by, 2); $by = $by[0] . '<br />' . date('m/d/y H:i:s') . ' Edited by: ' . $user_name; $sqlm->query(' UPDATE mm_motd SET realmid = \'' . $realm_id . '\', type = \'' . $by . '\', content = \'' . $msg . '\' WHERE id = ' . $id . ''); unset($by); unset($msg); unset($id); redirect('index.php'); }
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; } }