diff --git a/common.php b/common.php index bcb85feb..43fdbc09 100644 --- a/common.php +++ b/common.php @@ -28,7 +28,7 @@ session_start(); define('MYAAC', true); define('MYAAC_VERSION', '0.1.3'); -define('DATABASE_VERSION', 1); +define('DATABASE_VERSION', 2); define('TABLE_PREFIX', 'myaac_'); define('START_TIME', microtime(true)); define('MYAAC_OS', (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') ? 'WINDOWS' : 'LINUX'); diff --git a/config.php b/config.php index 62fc4251..c0a159a6 100644 --- a/config.php +++ b/config.php @@ -75,6 +75,10 @@ $config = array( //'2' => 'Your Second World Name' ), + // items + 'outfit_images_url' => 'http://outfit-images.ots.me/outfit.php', // set to animoutfit.php for animated outfit + 'item_images_url' => 'http://item-images.ots.me/960/', // set to images/items if you host your own items in images folder + // account 'account_management' => true, // disable if you're using other method to manage users (fe. tfs account manager) 'account_mail_verify' => false, // force users to confirm their email addresses when registering account @@ -86,6 +90,7 @@ $config = array( 'account_country' => true, // user will be able to set country of origin when registering account, this information will be viewable in others places aswell 'account_change_character_name' => false, // can user change their character name for premium points? 'account_change_character_name_points' => 30, // cost of name change + 'characters_per_account' => 10, // max. number of characters per account // mail 'mail_enabled' => false, // is aac maker configured to send e-mails? @@ -133,8 +138,6 @@ $config = array( 1 => 'Sample town' ), - 'characters_per_account' => 10, // max. number of characters per account - // guilds 'guild_management' => true, // enable guild management system on the site? 'guild_need_level' => 1, // min. level to form a guild @@ -155,6 +158,7 @@ $config = array( 'online_vocations' => false, // display vocation statistics? 'online_vocations_images' => false, // display vocation images? 'online_skulls' => false, // display skull images + 'online_outfit' => true, 'online_afk' => false, // support list page @@ -171,6 +175,7 @@ $config = array( 'highscores_vocation_box' => true, // show 'Choose a vocation' box on the highscores (allowing peoples to sort highscores by vocation)? 'highscores_vocation' => true, // show player vocation under his nickname? 'highscores_frags' => false, // show 'Frags' tab (best fraggers on the server)? Only 0.3 + 'highscores_outfit' => true, // show player outfit? 'highscores_country_box' => false, // doesnt work yet! (not implemented) 'highscores_groups_hidden' => 4, // this group id and higher won't be shown on the highscores @@ -181,6 +186,7 @@ $config = array( 'magic_level' => false, 'balance' => false, 'marriage_info' => true, // only 0.3 + 'outfit' => true, 'creation_date' => true, 'quests' => true, 'skills' => true, diff --git a/images/blackskull.gif b/images/black_skull.gif similarity index 100% rename from images/blackskull.gif rename to images/black_skull.gif diff --git a/images/redskull.gif b/images/red_skull.gif similarity index 100% rename from images/redskull.gif rename to images/red_skull.gif diff --git a/images/whiteskull.gif b/images/white_skull.gif similarity index 100% rename from images/whiteskull.gif rename to images/white_skull.gif diff --git a/index.php b/index.php index e46ed855..2a1dd32c 100644 --- a/index.php +++ b/index.php @@ -217,10 +217,10 @@ if($load_it) } ob_start(); - $hooks->trigger(HOOK_BEFORE_PAGE); - - if(!$ignore) - require($file); + if($hooks->trigger(HOOK_BEFORE_PAGE)) { + if(!$ignore) + require($file); + } if($config['backward_support'] && isset($main_content[0])) $content .= $main_content; diff --git a/install/includes/schema.sql b/install/includes/schema.sql index a8384c19..4082dc74 100644 --- a/install/includes/schema.sql +++ b/install/includes/schema.sql @@ -146,8 +146,8 @@ CREATE TABLE `myaac_movies` CREATE TABLE `myaac_news` ( `id` INT(11) NOT NULL AUTO_INCREMENT, - `title` VARCHAR(50) NOT NULL, - `body` VARCHAR(10000) NOT NULL, + `title` VARCHAR(100) NOT NULL, + `body` TEXT NOT NULL, `type` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '1 - news, 2 - ticket, 3 - article', `date` INT(11) NOT NULL DEFAULT 0, `category` TINYINT(1) NOT NULL DEFAULT 0, diff --git a/system/functions.php b/system/functions.php index f324fdd7..e5748e2c 100644 --- a/system/functions.php +++ b/system/functions.php @@ -148,7 +148,7 @@ function getItemImage($id, $count = 1) $file_name .= '-' . $count; global $config; - return ' ' .$id . ''; + return ' ' .$id . ''; } function getFlagImage($country) diff --git a/system/hooks.php b/system/hooks.php index 3a45d310..bf9d0fc8 100644 --- a/system/hooks.php +++ b/system/hooks.php @@ -51,7 +51,7 @@ class Hook require(BASE . $this->_file); } - return false; + return true; } public function name() {return $this->_name;} diff --git a/system/libs/pot/OTS_Account.php b/system/libs/pot/OTS_Account.php index 0d2579e2..08f858bf 100644 --- a/system/libs/pot/OTS_Account.php +++ b/system/libs/pot/OTS_Account.php @@ -916,6 +916,9 @@ class OTS_Account extends OTS_Row_DAO implements IteratorAggregate, Countable else if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) && !empty($_SERVER['HTTP_X_FORWARDED_FOR'])) $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; + if($ip == NULL) + $ip = '0'; + return $this->db->query('INSERT INTO ' . $this->db->tableName(TABLE_PREFIX . 'account_actions') . ' (' . $this->db->fieldName('account_id') . ', ' . $this->db->fieldName('ip') . ', ' . $this->db->fieldName('date') . ', ' . $this->db->fieldName('action') . ') VALUES (' . $this->db->quote($this->getId()).', INET_ATON(' . $this->db->quote($ip) . '), UNIX_TIMESTAMP(NOW()), ' . $this->db->quote($action).')'); } diff --git a/system/migrations/2.php b/system/migrations/2.php new file mode 100644 index 00000000..db5fd70f --- /dev/null +++ b/system/migrations/2.php @@ -0,0 +1,6 @@ +query("ALTER TABLE `" . TABLE_PREFIX . "faq` MODIFY `answer` VARCHAR(1020) NOT NULL DEFAULT '';"); + $db->query("ALTER TABLE `" . TABLE_PREFIX . "movies` MODIFY `title` VARCHAR(100) NOT NULL DEFAULT '';"); + $db->query("ALTER TABLE `" . TABLE_PREFIX . "news` MODIFY `title` VARCHAR(100) NOT NULL DEFAULT '';"); + $db->query("ALTER TABLE `" . TABLE_PREFIX . "news` MODIFY `body` TEXT NOT NULL DEFAULT '';"); +?> diff --git a/system/pages/characters.php b/system/pages/characters.php index b0e8c68d..ee982b1c 100644 --- a/system/pages/characters.php +++ b/system/pages/characters.php @@ -60,29 +60,46 @@ function generate_player_lookup($player) $player_eq[$i] = $empty_slots[$i]; } - //for($i = 1; $i < 11; $i++) - //{ - //if(!itemImageExists($player_eq[$i])) - // Items::generate($player_eq[$i]); - //} + if(PHP_VERSION_ID == NULL || PHP_VERSION_ID < 70000) { + for($i = 1; $i < 11; $i++) + { + if(!itemImageExists($player_eq[$i])) + Items::generate($player_eq[$i]); + } + } + + for($i = 1; $i < 11; $i++) + { + if(check_number($player_eq[$i])) + $player_eq[$i] = getItemImage($player_eq[$i]); + else + $player_eq[$i] = ' ' . $player_eq[$i] . ''; + } + + $skulls = array( + 1 => 'skull_yellow', + 2 => 'skull_green', + 3 => 'skull_white', + 4 => 'skull_red', + 5 => 'skull_black' + ); return ' @@ -148,6 +165,9 @@ if($player->isLoaded() && !$player->isDeleted()) '; - } - ?> + trigger(HOOK_TIBIACOM_BORDER_3); ?>
-
- - + +
'.getItemImage($player_eq[2]).'
'.getItemImage($player_eq[6]).'
'.getItemImage($player_eq[9]).'
'.($player->getSkull() > 0 ? '' : '').'
'.$player_eq[2].'
'.$player_eq[6].'
'.$player_eq[9].'
'.($player->getSkullTime() > 0 && ($player->getSkull() == 4 || $player->getSkull() == 5) ? '' : '').'
- +
'.getItemImage($player_eq[1]).'
'.getItemImage($player_eq[4]).'
'.getItemImage($player_eq[7]).'
'.getItemImage($player_eq[8]).'
'.$player_eq[1].'
'.$player_eq[4].'
'.$player_eq[7].'
'.$player_eq[8].'
-
- +
'.getItemImage($player_eq[3]).'
'.getItemImage($player_eq[5]).'
'.getItemImage($player_eq[10]).'
'.$player_eq[3].'
'.$player_eq[5].'
'.$player_eq[10].'
+ +
>
+ diff --git a/system/pages/highscores.php b/system/pages/highscores.php index 4abf4845..660a8c71 100644 --- a/system/pages/highscores.php +++ b/system/pages/highscores.php @@ -99,6 +99,10 @@ $deleted = 'deleted'; if(fieldExist('deletion', 'players')) $deleted = 'deletion'; +$outfit = ''; +if($config['highscores_outfit']) + $outfit = ', lookbody, lookfeet, lookhead, looklegs, looktype, lookaddons'; + $offset = $_page * 100; if($skill <= POT::SKILL_LAST) { // skills if(fieldExist('skill_fist', 'players')) {// tfs 1.0 @@ -112,14 +116,14 @@ if($skill <= POT::SKILL_LAST) { // skills POT::SKILL_FISH => 'skill_fishing', ); - $skills = $db->query('SELECT accounts.country, players.id,players.name' . $online . ',level,vocation' . $promotion . ', ' . $skill_ids[$skill] . ' as value FROM accounts,players WHERE players.' . $deleted . ' = 0 AND players.group_id < '.$config['highscores_groups_hidden'].' '.$add_sql.' AND players.id > 6 AND accounts.id = players.account_id ORDER BY ' . $skill_ids[$skill] . ' DESC LIMIT 101 OFFSET '.$offset); + $skills = $db->query('SELECT accounts.country, players.id,players.name' . $online . ',level,vocation' . $promotion . $outfit . ', ' . $skill_ids[$skill] . ' as value FROM accounts,players WHERE players.' . $deleted . ' = 0 AND players.group_id < '.$config['highscores_groups_hidden'].' '.$add_sql.' AND players.id > 6 AND accounts.id = players.account_id ORDER BY ' . $skill_ids[$skill] . ' DESC LIMIT 101 OFFSET '.$offset); } else - $skills = $db->query('SELECT accounts.country, players.id,players.name' . $online . ',value,level,vocation' . $promotion . ' FROM accounts,players,player_skills WHERE players.' . $deleted . ' = 0 AND players.group_id < '.$config['highscores_groups_hidden'].' '.$add_sql.' AND players.id > 6 AND players.id = player_skills.player_id AND player_skills.skillid = '.$skill.' AND accounts.id = players.account_id ORDER BY value DESC, count DESC LIMIT 101 OFFSET '.$offset); + $skills = $db->query('SELECT accounts.country, players.id,players.name' . $online . ',value,level,vocation' . $promotion . $outfit . ' FROM accounts,players,player_skills WHERE players.' . $deleted . ' = 0 AND players.group_id < '.$config['highscores_groups_hidden'].' '.$add_sql.' AND players.id > 6 AND players.id = player_skills.player_id AND player_skills.skillid = '.$skill.' AND accounts.id = players.account_id ORDER BY value DESC, count DESC LIMIT 101 OFFSET '.$offset); } else if($skill == 666 && $config['otserv_version'] == TFS_03) // frags { - $skills = $db->query('SELECT accounts.country, players.id,players.name' . $online . ',level,vocation' . $promotion . ',COUNT(`player_killers`.`player_id`) as value' . + $skills = $db->query('SELECT accounts.country, players.id,players.name' . $online . ',level,vocation' . $promotion . $outfit . ',COUNT(`player_killers`.`player_id`) as value' . ' FROM `accounts`, `players`, `player_killers` ' . ' WHERE players.' . $deleted . ' = 0 AND players.group_id < '.$config['highscores_groups_hidden'].' '.$add_sql.' AND players.id = player_killers.player_id AND accounts.id = players.account_id' . ' GROUP BY `player_id`' . @@ -129,10 +133,10 @@ else if($skill == 666 && $config['otserv_version'] == TFS_03) // frags else { if($skill == POT::SKILL__MAGLEVEL) { - $skills = $db->query('SELECT accounts.country, players.id,players.name' . $online . ',maglevel,level,vocation' . $promotion . ' FROM accounts, players WHERE players.' . $deleted . ' = 0 '.$add_sql.' AND players.group_id < '.$config['highscores_groups_hidden'].' AND players.id > 6 AND accounts.id = players.account_id ORDER BY maglevel DESC, manaspent DESC LIMIT 101 OFFSET '.$offset); + $skills = $db->query('SELECT accounts.country, players.id,players.name' . $online . ',maglevel,level,vocation' . $promotion . $outfit . ' FROM accounts, players WHERE players.' . $deleted . ' = 0 '.$add_sql.' AND players.group_id < '.$config['highscores_groups_hidden'].' AND players.id > 6 AND accounts.id = players.account_id ORDER BY maglevel DESC, manaspent DESC LIMIT 101 OFFSET '.$offset); } else { // level - $skills = $db->query('SELECT accounts.country, players.id,players.name' . $online . ',level,experience,vocation' . $promotion . ' FROM accounts, players WHERE players.' . $deleted . ' = 0 '.$add_sql.' AND players.group_id < '.$config['highscores_groups_hidden'].' AND players.id > 6 AND accounts.id = players.account_id ORDER BY level DESC, experience DESC LIMIT 101 OFFSET '.$offset); + $skills = $db->query('SELECT accounts.country, players.id,players.name' . $online . ',level,experience,vocation' . $promotion . $outfit . ' FROM accounts, players WHERE players.' . $deleted . ' = 0 '.$add_sql.' AND players.group_id < '.$config['highscores_groups_hidden'].' AND players.id > 6 AND accounts.id = players.account_id ORDER BY level DESC, experience DESC LIMIT 101 OFFSET '.$offset); $list = 'experience'; } } @@ -150,6 +154,9 @@ else + + + @@ -177,15 +184,18 @@ foreach($skills as $player) { if($skill == POT::SKILL__MAGIC) $player['value'] = $player['maglevel']; - - if($skill == POT::SKILL__LEVEL) + else if($skill == POT::SKILL__LEVEL) $player['value'] = $player['level']; echo ' '; if($config['account_country']) echo ''; echo ' - + '; + if($config['highscores_outfit']) + echo ''; + +echo ' - + @@ -456,28 +458,41 @@ if(!$news_cached) if($cache->enabled() && !$canEdit) $cache->set('news_' . $template_name . '_' . NEWS, $tmp_content, 120); - echo $tmp_content; + echo $tmp_content; } else echo $news_cached; class News { + static public function verify($title, $body, &$errors) + { + if(!isset($title[0]) || !isset($body[0])) { + $errors[] = 'Please fill all inputs.'; + return false; + } + + if(strlen($title) > TITLE_LIMIT) { + $errors[] = 'News title cannot be longer than ' . TITLE_LIMIT . ' characters.'; + return false; + } + + if(strlen($body) > BODY_LIMIT) { + $errors[] = 'News content cannot be longer than ' . BODY_LIMIT . ' characters.'; + return false; + } + + return true; + } + static public function add($title, $body, $type, $category, $player_id, $comments, &$errors) { global $db; - if(strlen($body) <= BODY_LIMIT) - { - if(isset($title[0]) && isset($body[0])) { - $db->insert(TABLE_PREFIX . 'news', array('title' => $title, 'body' => $body, 'type' => $type, 'date' => time(), 'category' => $category, 'player_id' => isset($player_id) ? $player_id : 0, 'comments' => $comments)); - } - else - $errors[] = 'Please fill all inputs.'; - } - else - $errors[] = 'News content cannot be longer than ' . BODY_LIMIT . ' characters.'; + if(!News::verify($title, $body, $errors)) + return false; - return !count($errors); + $db->insert(TABLE_PREFIX . 'news', array('title' => $title, 'body' => $body, 'type' => $type, 'date' => time(), 'category' => $category, 'player_id' => isset($player_id) ? $player_id : 0, 'comments' => $comments)); + return true; } static public function get($id) { @@ -485,9 +500,14 @@ class News return $db->select(TABLE_PREFIX . 'news', array('id' => $id)); } - static public function update($id, $title, $body, $type, $category, $player_id, $comments) { + static public function update($id, $title, $body, $type, $category, $player_id, $comments, &$errors) + { global $db; + if(!News::verify($title, $body, $errors)) + return false; + $db->update(TABLE_PREFIX . 'news', array('title' => $title, 'body' => $body, 'type' => $type, 'category' => $category, 'last_modified_by' => isset($player_id) ? $player_id : 0, 'last_modified_date' => time(), 'comments' => $comments), array('id' => $id)); + return true; } static public function delete($id, &$errors) diff --git a/system/pages/online.php b/system/pages/online.php index 34f7627d..cd70c5bc 100644 --- a/system/pages/online.php +++ b/system/pages/online.php @@ -42,11 +42,15 @@ if(fieldExist('skull_time', 'players')) { $skull_time = 'skull_time'; } +$outfit = ''; +if($config['online_outfit']) + $outfit = ', lookbody, lookfeet, lookhead, looklegs, looktype, lookaddons'; + $vocs = array(0, 0, 0, 0, 0); if(tableExist('players_online')) // tfs 1.0 - $playersOnline = $db->query('SELECT `accounts`.`country`, `players`.`name`, `level`, `vocation`, `' . $skull_time . '` as `skulltime`, `' . $skull_type . '` as `skull` FROM `accounts`, `players`, `players_online` WHERE `players`.`id` = `players_online`.`player_id` AND `accounts`.`id` = `players`.`account_id` ORDER BY ' . $order); + $playersOnline = $db->query('SELECT `accounts`.`country`, `players`.`name`, `level`, `vocation`' . $outfit . ', `' . $skull_time . '` as `skulltime`, `' . $skull_type . '` as `skull` FROM `accounts`, `players`, `players_online` WHERE `players`.`id` = `players_online`.`player_id` AND `accounts`.`id` = `players`.`account_id` ORDER BY ' . $order); else - $playersOnline = $db->query('SELECT `accounts`.`country`, `players`.`name`, `level`, `vocation`, ' . $promotion . ' `' . $skull_time . '` as `skulltime`, `' . $skull_type . '` as `skull` FROM `accounts`, `players` WHERE `players`.`online` > 0 AND `accounts`.`id` = `players`.`account_id` ORDER BY ' . $order); + $playersOnline = $db->query('SELECT `accounts`.`country`, `players`.`name`, `level`, `vocation`' . $outfit . ', ' . $promotion . ' `' . $skull_time . '` as `skulltime`, `' . $skull_type . '` as `skull` FROM `accounts`, `players` WHERE `players`.`online` > 0 AND `accounts`.`id` = `players`.`account_id` ORDER BY ' . $order); $players = 0; $data = ''; @@ -72,6 +76,9 @@ foreach($playersOnline as $player) if($config['account_country']) $data .= ''; + if($config['online_outfit']) + $data .= ''; + $data .= ' @@ -195,6 +202,9 @@ if($config['online_skulls']): ?> + + + @@ -205,7 +215,31 @@ if($config['online_skulls']): ?> endif; //search bar -echo '
Character Information
# RankOutfit Name
' . getFlagImage($player['country']) . '' . ($offset + $i) . '.' . ($offset + $i) . '. ' . $player['name'] . ' diff --git a/system/pages/news.php b/system/pages/news.php index e11bbbc1..81d14512 100644 --- a/system/pages/news.php +++ b/system/pages/news.php @@ -98,7 +98,8 @@ define('NEWS', 1); define('TICKET', 2); define('ARTICLE', 3); -define('BODY_LIMIT', 10000); // maximum news body length +define('TITLE_LIMIT', 100); +define('BODY_LIMIT', 65535); // maximum news body length $canEdit = hasFlag(FLAG_CONTENT_NEWS) || superAdmin(); if($canEdit) @@ -143,9 +144,10 @@ if($canEdit) $player_id = $news['player_id']; } else { - News::update($id, $p_title, $body, $type, $category, $player_id, $comments); - $action = $p_title = $body = $comments = ''; - $type = $category = $player_id = 0; + if(News::update($id, $p_title, $body, $type, $category, $player_id, $comments, $errors)) { + $action = $p_title = $body = $comments = ''; + $type = $category = $player_id = 0; + } } } else if($action == 'hide') { @@ -214,7 +216,7 @@ if(!$news_cached) '.date("j M Y", $news['date']).' -
'; //if admin show button to delete (hide) ticker - $tickers_to_add .= short_text($news['body'], 60).'
+ $tickers_to_add .= short_text(strip_tags($news['body']), 100).'
'; //if admin show button to delete (hide) ticker $tickers_to_add .= $news['body'] . $admin_options . '
@@ -300,7 +302,7 @@ if(!$news_cached)
Title:
' . getFlagImage($player['country']) . '' . getPlayerLink($player['name']) . $skull . ' '.$player['level'].' '.$config['vocations'][$player['vocation']].' # Outfit Name Level Vocation
Search Character
Name:
'; +echo '
+
+ + + + + + + +
+ Search Character +
+ + + + + + +
Name: + + + +
+
+
'; /* temporary disable it - shows server offline // update online players counter diff --git a/templates/kathrine/template.php b/templates/kathrine/template.php index f46eab3d..133f7c92 100644 --- a/templates/kathrine/template.php +++ b/templates/kathrine/template.php @@ -12,10 +12,10 @@ defined('MYAAC') or die('Direct access not allowed!'); var category = '
+ Who is Online? + Characters Guilds @@ -116,11 +118,9 @@ defined('MYAAC') or die('Direct access not allowed!');
- - Who is Online? Server Info diff --git a/templates/tibiacom/index.php b/templates/tibiacom/index.php index 6676a46d..ea6b897f 100644 --- a/templates/tibiacom/index.php +++ b/templates/tibiacom/index.php @@ -696,137 +696,8 @@ echo "
"; Contentbox headline
- -
- - -
- Witaj na Śląskim serwerze.
Przed rozpoczęciem gry zapoznaj z podstroną Server Info.
- O pomoc w grze zawsze możesz poprosić na kanale Help.

- - Ostatnio zarejestrował się: - query('SELECT `name` FROM `players` ORDER BY `id` DESC LIMIT 1'); - $newestMember = $newestMember->fetch(); - echo getPlayerLink($newestMember['name']) . '. Witamy!'; - ?> -
-
- '. - ' - - - '; - - $i = 1; - foreach($list as $str) - echo '' . $str . ''; - echo - '
TOP 5 - ' . $name . '
-
- - 'S', - 2 => 'D', - 3 => 'P', - 4 => 'K' - ), - array( - 1 => 'MS', - 2 => 'ED', - 3 => 'RP', - 4 => 'EK' - ) - ); - - //players - $top_array = array(); - $top_players_query = $db->query( - 'SELECT `name`, `level`, `experience`, `vocation`, `promotion`, `online` FROM `players`' . - ' WHERE players.deleted = 0 AND players.group_id < '.$config['highscores_groups_hidden'] . - ' ORDER BY `experience` DESC' . - ' LIMIT 5'); - - $i = 0; - foreach($top_players_query as $player) - { - $top_array[$i++] = - ' - '; - } - write_top('Players', $top_array); - - //powergamers - $top_array = array(); - $today = getZeroDay(); - $top_powergamers_query = $db->query( - 'SELECT `wodz_exphistory`.`exp_change` as exp_change, `name`, `players`.`level`, `players`.`experience`, `vocation`, `promotion`, `online`' . - ' FROM `wodz_exphistory`, `players`' . - ' WHERE players.id = wodz_exphistory.player_id AND `date` = ' . $today . ' ORDER BY `exp_change` DESC LIMIT 5'); - - $i = 0; - foreach($top_powergamers_query as $player) - { - $top_array[$i++] = - ' - - '; - } - write_top('Powergamers (Today)', $top_array, 3); - - //guilds - $top_array = array(); - $top_guilds_query = $db->query( - 'SELECT `name`, `total_level`' . - ' FROM `guilds`' . - ' ORDER BY `total_level` DESC' . - ' LIMIT 5'); - - $i = 0; - foreach($top_guilds_query as $guild) - { - $top_array[$i++] = - ' - - '; - } - write_top('Guilds', $top_array, 3); - ?> - -
' . $i . '. - '.($player['online']>0 ? "".$player['name']."" : "".$player['name']."").' - ('.$player['level'].' '.$vocation_name_short[$player['promotion']][$player['vocation']].') - ' . $i . '. - '.($player['online']>0 ? "".$player['name']."" : "".$player['name']."").' - ('.$player['level'].' '.$vocation_name_short[$player['promotion']][$player['vocation']].') - ' . formatExperience($player['exp_change']) . '' . $i . '.' . getGuildLink($guild['name']) . '' . $guild['total_level'] . '
- -
-