From 870cc8f98bcdbd79f2570d7aaf406e207e850815 Mon Sep 17 00:00:00 2001 From: slawkens1 Date: Thu, 4 May 2017 18:47:52 +0200 Subject: [PATCH] Fix character loading with invalid names Fixed characters loading with names that has been created with other AAC --- system/pages/characters.php | 1035 +++++++++++++++++------------------ 1 file changed, 515 insertions(+), 520 deletions(-) diff --git a/system/pages/characters.php b/system/pages/characters.php index 786b17b9..ea6db47d 100644 --- a/system/pages/characters.php +++ b/system/pages/characters.php @@ -120,581 +120,576 @@ if(empty($name)) $name = str_replace('/', '', $name); -if(check_name($name)) +$oldName = ''; + +$player = $ots->createObject('Player'); +$player->find($name); +if(!$player->isLoaded()) { - $oldName = ''; - - $player = $ots->createObject('Player'); - $player->find($name); - if(!$player->isLoaded()) + $tmp_zmienna = ""; + $tmp_name = retrieve_former_name($name); + while(!empty($tmp_name)) { - $tmp_zmienna = ""; - $tmp_name = retrieve_former_name($name); - while(!empty($tmp_name)) - { - $tmp_zmienna = $tmp_name; - $tmp_name = retrieve_former_name($tmp_zmienna); - } - - if(!empty($tmp_zmienna)) - $player->find($tmp_zmienna); + $tmp_zmienna = $tmp_name; + $tmp_name = retrieve_former_name($tmp_zmienna); } - if($player->isLoaded() && !$player->isDeleted()) - { - $title = $player->getName() . ' - ' . $title; - $account = $player->getAccount(); - $rows = 0; + if(!empty($tmp_zmienna)) + $player->find($tmp_zmienna); +} + +if($player->isLoaded() && !$player->isDeleted()) +{ + $title = $player->getName() . ' - ' . $title; + $account = $player->getAccount(); + $rows = 0; ?> - - - '. + ''. + ''; } } - else { - $deaths = $db->query('SELECT - `player_id`, `time`, `level`, `killed_by`, `is_player`, - `mostdamage_by`, `mostdamage_is_player`, `unjustified`, `mostdamage_unjustified` - FROM `player_deaths` - WHERE `player_id` = ' . $player->getId() . ' ORDER BY `time` DESC LIMIT 10;'); - if(count($deaths)) + echo + ''; + if($config['characters']['creation_date']) + echo + ''; + + $comment = $player->getComment();/* + $newlines = array("\r\n", "\n", "\r"); + $comment_with_lines = str_replace($newlines, '
', $comment, $count); + if($count < 50) + $comment = $comment_with_lines;*/ + if(!empty($comment)) + echo ''; + + echo + ''. + '
- - - - +
Character Information
+ + '. + ''. + ''; - echo '
'. - '
+ + + + - getCustomField('country')); - - echo - ''. - ' - '; - - echo - ''; - - if($config['characters']['marriage_info'] && fieldExist('marriage', 'players')) - { - echo - ''; - } + getCustomField('country')); echo - ''. - ''. - ''; - - if($config['characters']['level']) - echo ''; - - if($config['characters']['experience']) - echo ''; - - if($config['characters']['magic_level']) - echo''; - - //frags - if(tableExist('player_killers') && $config['characters']['frags']) { - $frags_count = 0; - $frags_query = $db->query( - 'SELECT COUNT(`player_id`) as `frags`' . - 'FROM `player_killers`' . - 'WHERE `player_id` = ' .$player->getId() . ' ' . - 'GROUP BY `player_id`' . - 'ORDER BY COUNT(`player_id`) DESC'); - - if($frags_query->rowCount() > 0) - { - $frags_query = $frags_query->fetch(); - $frags_count = $frags_query['frags']; - } - - echo - ''; - } - - if(!empty($config['towns'][$player->getTownId()])) - echo ''; - - if($config['characters']['balance']) - echo ''; - - $town_field = 'town'; - if(fieldExist('town_id', 'houses')) - $town_field = 'town_id'; - else if(fieldExist('townid', 'houses')) - $town_field = 'townid'; - - $house = $db->query('SELECT `id`, `paid`, `name`, `' . $town_field . '` FROM `houses` WHERE `owner` = '.$player->getId())->fetch(); - if(isset($house['id'])) - { - if($house['paid'] > 0) - $add = ' is paid until '.date("M d Y", $house['paid']); - - echo - ' - - - '; - } - - $rank_of_player = $player->getRank(); - if($rank_of_player->isLoaded()) { - $guild = $rank_of_player->getGuild(); - if($guild->isLoaded()) { - $guild_name = $guild->getName(); - echo - ''. - ''. - ''; - } - } + ''. + ' + '; echo - ''; + + if($config['characters']['marriage_info'] && fieldExist('marriage', 'players')) + { + echo + ''; - if($config['characters']['creation_date']) - echo - ''; - - $comment = $player->getComment();/* - $newlines = array("\r\n", "\n", "\r"); - $comment_with_lines = str_replace($newlines, '
', $comment, $count); - if($count < 50) - $comment = $comment_with_lines;*/ - if(!empty($comment)) - echo ''; + echo 'single'; + echo + ''; + } echo - ''. - '
Character Information
Name:' . $flag . ' '.$player->getName().''.$oldName. - '
Sex:'. - ($player->getSex() == 0 ? 'female' : 'male'). - '
Marital status:'; - $marriage = new OTS_Player(); - $marriage->load($player->getMarriage()); - if($marriage->isLoaded()) - echo 'married to ' . getPlayerLink($marriage->getName()); - else - echo 'single'; - echo - '
Profession:' . $config['vocations'][$player->getVocation()] . '
Level:'.$player->getLevel().'
Experience:'.$player->getExperience().'
Magic Level:'.$player->getMagLevel().'
Frags:' . $frags_count . '
Residence:' . $config['towns'][$player->getTownId()] . '
Balance:'.$player->getBalance().' Gold Coins.
House: - - - -
'.$house['name'].' ('.$config['towns'][$house[$town_field]].')'.$add.' -
- - -
-
-
Guild membership:'.$rank_of_player->getName().' of the ' . getGuildLink($guild_name) . '
Name:' . $flag . ' '.$player->getName().''.$oldName. + '
Last login:'; - $lastlogin = $player->getLastLogin(); - if(empty($lastlogin)) - echo 'Never logged in.'; + '
Sex:'. + ($player->getSex() == 0 ? 'female' : 'male'). + '
Marital status:'; + $marriage = new OTS_Player(); + $marriage->load($player->getMarriage()); + if($marriage->isLoaded()) + echo 'married to ' . getPlayerLink($marriage->getName()); else - echo date("M d Y, H:i:s", $lastlogin).' CEST'; - - echo '
Created:'.date("M d Y, H:i:s", $player->getCreated()).' CEST
Comment:' . wordwrap(nl2br($comment), 60, "
", true) . '
Account Status:' . (($account->isPremium()) ? 'Premium Account' : 'Free Account') . '
'; + '
Profession:' . $config['vocations'][$player->getVocation()] . '
'; + if($config['characters']['level']) + echo ''; - if($config['characters']['skills']) - { - if(fieldExist('skill_fist', 'players')) {// tfs 1.0+ - $skills_db = $db->query('SELECT `skill_fist`, `skill_club`, `skill_sword`, `skill_axe`, `skill_dist`, `skill_shielding`, `skill_fishing` FROM `players` WHERE `id` = ' . $player->getId())->fetch(); - - $skill_ids = array( - POT::SKILL_FIST => 'skill_fist', - POT::SKILL_CLUB => 'skill_club', - POT::SKILL_SWORD => 'skill_sword', - POT::SKILL_AXE => 'skill_axe', - POT::SKILL_DIST => 'skill_dist', - POT::SKILL_SHIELD => 'skill_shielding', - POT::SKILL_FISH => 'skill_fishing', - ); - - $skills = array(); - foreach($skill_ids as $skillid => $field_name) { - $skills[] = array('skillid' => $skillid, 'value' => $skills_db[$field_name]); - } - } - else - $skills = $db->query('SELECT `skillid`, `value` FROM `player_skills` WHERE `player_id` = ' . $player->getId() . ' LIMIT 7'); - echo ' - '; - } + //frags + if(tableExist('player_killers') && $config['characters']['frags']) { + $frags_count = 0; + $frags_query = $db->query( + 'SELECT COUNT(`player_id`) as `frags`' . + 'FROM `player_killers`' . + 'WHERE `player_id` = ' .$player->getId() . ' ' . + 'GROUP BY `player_id`' . + 'ORDER BY COUNT(`player_id`) DESC'); - if($config['characters']['quests'] && !empty($config['quests'])) - { - $quests = $config['quests']; - $sql_query_in = ''; - $i = 0; - foreach($quests as $quest_name => $quest_storage) - { - if($i != 0) - $sql_query_in .= ', '; - - $sql_query_in .= $quest_storage; - $i++; - } - - $storage_sql = $db->query('SELECT `key`, `value` FROM `player_storage` WHERE `player_id` = '.$player->getId().' AND `key` IN (' . $sql_query_in . ')'); - $player_storage = array(); - foreach($storage_sql as $storage) - $player_storage[$storage['key']] = $storage['value']; - - echo ' - '; - } - - if($config['characters']['equipment']) - { - echo ' - '; - } - - echo '
Level:'.$player->getLevel().'
'. - ' - - - '; + if($config['characters']['experience']) + echo ''; - $i = 0; - foreach($skills as $skill) - { - echo - ' - - - '; - } + if($config['characters']['magic_level']) + echo''; - echo - '
Skills
Experience:'.$player->getExperience().'
' . getSkillName($skill['skillid']) . '' . $skill['value'] . '
Magic Level:'.$player->getMagLevel().'
-
'. - ' - - - '; - - //for($i=0; $i < count($quests); $i++) - $i = 0; - foreach($quests as $name => $storage) - { - $i++; - echo - ' - - - '; - } - - echo - '
Quests
'.$name.'
-
'. - ''. - ''. - ' -
Equipment
'.generate_player_lookup($player).'
-
'; - - - if(tableExist('killers')) { - $player_deaths = $db->query('SELECT `id`, `date`, `level` FROM `player_deaths` WHERE `player_id` = '.$player->getId().' ORDER BY `date` DESC LIMIT 0,10;'); - if(count($player_deaths)) + if($frags_query->rowCount() > 0) { - $dead_add_content = '
'; + $frags_query = $frags_query->fetch(); + $frags_count = $frags_query['frags']; + } - $number_of_rows = 0; - foreach($player_deaths as $death) - { - $dead_add_content .= " - - '; + } - $i = 0; - $count = count($killers); - foreach($killers as $killer) - { - $i++; - if($killer['player_name'] != "") - { - if($i == 1) - $dead_add_content .= "Killed at level ".$death['level'].""; - else if($i == $count) - $dead_add_content .= " and"; - else - $dead_add_content .= ","; + if(!empty($config['towns'][$player->getTownId()])) + echo ''; - $dead_add_content .= " by "; - if($killer['monster_name'] != "") - $dead_add_content .= $killer['monster_name']." summoned by "; + if($config['characters']['balance']) + echo ''; - if($killer['player_exists'] == 0) - $dead_add_content .= getPlayerLink($killer['player_name']); - else - $dead_add_content .= $killer['player_name']; - } - else - { - if($i == 1) - $dead_add_content .= "Died at level ".$death['level'].""; - else if($i == $count) - $dead_add_content .= " and"; - else - $dead_add_content .= ","; + $town_field = 'town'; + if(fieldExist('town_id', 'houses')) + $town_field = 'town_id'; + else if(fieldExist('townid', 'houses')) + $town_field = 'townid'; + + $house = $db->query('SELECT `id`, `paid`, `name`, `' . $town_field . '` FROM `houses` WHERE `owner` = '.$player->getId())->fetch(); + if(isset($house['id'])) + { + if($house['paid'] > 0) + $add = ' is paid until '.date("M d Y", $house['paid']); - $dead_add_content .= " by ".$killer['monster_name']; - } - } + echo + ' + + + '; + } - $dead_add_content .= "."; - } - - if($number_of_rows > 0) - echo $dead_add_content . '
Character Deaths
".date("j M Y, H:i", $death['date'])." "; - $killers = $db->query("SELECT environment_killers.name AS monster_name, players.name AS player_name, players.deleted AS player_exists FROM killers LEFT JOIN environment_killers ON killers.id = environment_killers.kill_id - LEFT JOIN player_killers ON killers.id = player_killers.kill_id LEFT JOIN players ON players.id = player_killers.player_id - WHERE killers.death_id = '".$death['id']."' ORDER BY killers.final_hit DESC, killers.id ASC")->fetchAll(); + echo + '
Frags:' . $frags_count . '
Residence:' . $config['towns'][$player->getTownId()] . '
Balance:'.$player->getBalance().' Gold Coins.
House: + + + +
'.$house['name'].' ('.$config['towns'][$house[$town_field]].')'.$add.' +
+ + +
+
+
'; + $rank_of_player = $player->getRank(); + if($rank_of_player->isLoaded()) { + $guild = $rank_of_player->getGuild(); + if($guild->isLoaded()) { + $guild_name = $guild->getName(); + echo + '
Guild membership:'.$rank_of_player->getName().' of the ' . getGuildLink($guild_name) . '
Last login:'; + $lastlogin = $player->getLastLogin(); + if(empty($lastlogin)) + echo 'Never logged in.'; + else + echo date("M d Y, H:i:s", $lastlogin).' CEST'; + + echo '
Created:'.date("M d Y, H:i:s", $player->getCreated()).' CEST
Comment:' . wordwrap(nl2br($comment), 60, "
", true) . '
Account Status:' . (($account->isPremium()) ? 'Premium Account' : 'Free Account') . '
'; + + echo '
'. + ''; + + if($config['characters']['skills']) { - $dead_add_content = '
'; - - $number_of_rows = 0; - foreach($deaths as $death) - { - $dead_add_content .= " - - "; + $skill_ids = array( + POT::SKILL_FIST => 'skill_fist', + POT::SKILL_CLUB => 'skill_club', + POT::SKILL_SWORD => 'skill_sword', + POT::SKILL_AXE => 'skill_axe', + POT::SKILL_DIST => 'skill_dist', + POT::SKILL_SHIELD => 'skill_shielding', + POT::SKILL_FISH => 'skill_fishing', + ); + + $skills = array(); + foreach($skill_ids as $skillid => $field_name) { + $skills[] = array('skillid' => $skillid, 'value' => $skills_db[$field_name]); + } } - - if($number_of_rows > 0) - echo $dead_add_content . '
Character Deaths
".date("j M Y, H:i", $death['time'])." "; - - $lasthit = ($death['is_player']) ? getPlayerLink($death['killed_by']) : $death['killed_by']; - $dead_add_content .= 'Killed at level ' . $death['level'] . ' by ' . $lasthit; - if($death['unjustified']) { - $dead_add_content .= " (unjustified)"; - } - - $mostdmg = ($death['mostdamage_by'] !== $death['killed_by']) ? true : false; - if($mostdmg) - { - $mostdmg = ($death['mostdamage_is_player']) ? getPlayerLink($death['mostdamage_by']) : $death['mostdamage_by']; - $dead_add_content .= '
and by ' . $mostdmg; - - if ($death['mostdamage_unjustified']) { - $dead_add_content .= " (unjustified)"; - } - } - else { - $dead_add_content .= " (soloed)"; - } + if(fieldExist('skill_fist', 'players')) {// tfs 1.0+ + $skills_db = $db->query('SELECT `skill_fist`, `skill_club`, `skill_sword`, `skill_axe`, `skill_dist`, `skill_shielding`, `skill_fishing` FROM `players` WHERE `id` = ' . $player->getId())->fetch(); - $dead_add_content .= ".
'; - } - } + else + $skills = $db->query('SELECT `skillid`, `value` FROM `player_skills` WHERE `player_id` = ' . $player->getId() . ' LIMIT 7'); + echo ' + '. + ' + + + '; - if($config['characters']['frags']) - { - //frags list by Xampy - $i = 0; - $frags_limit = 10; // frags limit to show? // default: 10 - $player_frags = $db->query('SELECT `player_deaths`.*, `players`.`name`, `killers`.`unjustified` FROM `player_deaths` LEFT JOIN `killers` ON `killers`.`death_id` = `player_deaths`.`id` LEFT JOIN `player_killers` ON `player_killers`.`kill_id` = `killers`.`id` LEFT JOIN `players` ON `players`.`id` = `player_deaths`.`player_id` WHERE `player_killers`.`player_id` = '.$player->getId().' ORDER BY `date` DESC LIMIT 0,'.$frags_limit.';'); - if(count($player_frags)) + $i = 0; + foreach($skills as $skill) + { + echo + ' + + + '; + } + + echo + '
Skills
' . getSkillName($skill['skillid']) . '' . $skill['value'] . '
+ '; + } + + if($config['characters']['quests'] && !empty($config['quests'])) { - $frags = 0; - $frag_add_content .= '
'; - foreach($player_frags as $frag) + $quests = $config['quests']; + $sql_query_in = ''; + $i = 0; + foreach($quests as $quest_name => $quest_storage) { - $frags++; - $frag_add_content .= ' - - "; + $sql_query_in .= $quest_storage; + $i++; } - if($frags > 0) - echo $frag_add_content . '
Victims
' . date("j M Y, H:i", $frag['date']) . 'Fragged ' . $frag[name] . ' at level ' . $frag[level]; + if($i != 0) + $sql_query_in .= ', '; - $frag_add_content .= ". (".(($frag['unjustified'] == 0) ? "Justified" : "Unjustified").")
'; + + $storage_sql = $db->query('SELECT `key`, `value` FROM `player_storage` WHERE `player_id` = '.$player->getId().' AND `key` IN (' . $sql_query_in . ')'); + $player_storage = array(); + foreach($storage_sql as $storage) + $player_storage[$storage['key']] = $storage['value']; + + echo ' + '. + ' + + + '; + + //for($i=0; $i < count($quests); $i++) + $i = 0; + foreach($quests as $name => $storage) + { + $i++; + echo + ' + + + '; + } + + echo + '
Quests
'.$name.'
+ '; } - } - //Signature - //Js - if($config['signature_enabled']) - { - echo ''; - echo '
- - -
Signature
'; - $signature_url = BASE_URL . 'tools/signature/?name=' . urlencode($player->getName()); - if($config['friendly_urls']) - $signature_url = BASE_URL . urlencode($player->getName()) . '.png'; - - echo ' - Signature for player '.$player->getName().' -
- Show links -
- - - - - - - - - - - - - - -
'; - } - - if($player->getCustomField('hidden') != 1) - { - $rows = 0; - echo '

- - - - '; - - $realName = $account->getCustomField('rlname'); - if(!empty($realName)) + if($config['characters']['equipment']) { echo ' - - - - '; + '; } - $group = $player->getGroup(); - if($group->isLoaded() && $group->getId() != 1) + echo '
Account Information
Real name:'.$realName.'
'. + ''. + ''. + ' +
Equipment
'.generate_player_lookup($player).'
+
'; + + + if(tableExist('killers')) { + $player_deaths = $db->query('SELECT `id`, `date`, `level` FROM `player_deaths` WHERE `player_id` = '.$player->getId().' ORDER BY `date` DESC LIMIT 0,10;'); + if(count($player_deaths)) + { + $dead_add_content = '
'; + + $number_of_rows = 0; + foreach($player_deaths as $death) { - echo - ' - - - '; - } + $dead_add_content .= " + + - - - '; - } - - echo - ' - '; - $bannedUntil = ''; - if(tableExist('account_bans')) - $banned = $db->query('SELECT `expires_at` as `expires` FROM `account_bans` WHERE `account_id` = '.$account->getId().' and `expires_at` > ' . time()); - else - $banned = $db->query('SELECT `expires` FROM `bans` WHERE (`value` = '.$account->getId().' or `value` = '.$player->getId().') and `active` = 1 and `type` != 2 and `type` != 4 and `expires` > ' . time()); - foreach($banned as $ban) + $i = 0; + $count = count($killers); + foreach($killers as $killer) + { + $i++; + if($killer['player_name'] != "") { - if($ban['type'] != 2 and $ban['type'] != 4) - $bannedUntil = ' [Banished '.($ban['expires'] == "-1" ? 'forever' : 'until '.date("d F Y, h:s", $ban['expires'])).']'; + if($i == 1) + $dead_add_content .= "Killed at level ".$death['level'].""; + else if($i == $count) + $dead_add_content .= " and"; + else + $dead_add_content .= ","; + + $dead_add_content .= " by "; + if($killer['monster_name'] != "") + $dead_add_content .= $killer['monster_name']." summoned by "; + + if($killer['player_exists'] == 0) + $dead_add_content .= getPlayerLink($killer['player_name']); + else + $dead_add_content .= $killer['player_name']; } - echo ' - -
Character Deaths
Position:' . ucfirst($group->getName()) . '
".date("j M Y, H:i", $death['date'])." "; + $killers = $db->query("SELECT environment_killers.name AS monster_name, players.name AS player_name, players.deleted AS player_exists FROM killers LEFT JOIN environment_killers ON killers.id = environment_killers.kill_id +LEFT JOIN player_killers ON killers.id = player_killers.kill_id LEFT JOIN players ON players.id = player_killers.player_id +WHERE killers.death_id = '".$death['id']."' ORDER BY killers.final_hit DESC, killers.id ASC")->fetchAll(); - $realLocation = $account->getCustomField('location'); - if(isset($realLocation[0])) - { - echo - '
Location:'.$realLocation.'
Created:'.date("j F Y, g:i a", $account->getCustomField("created")).$bannedUntil.'
'; + else + { + if($i == 1) + $dead_add_content .= "Died at level ".$death['level'].""; + else if($i == $count) + $dead_add_content .= " and"; + else + $dead_add_content .= ","; - echo '

- - - - - - - - - - '; + $dead_add_content .= " by ".$killer['monster_name']; + } + } - $account_players = $account->getPlayersList(); - $account_players->orderBy('name'); - $player_number = 0; - foreach($account_players as $player_list) - { - $player_list_status = ''; - if($player_list->isHidden()) - continue; - - $player_number++; - if($player_list->isOnline()) - $player_list_status = 'Online'; - - echo ''; - } - echo '
Characters
NameLevelStatus 
'.$player_number.'. '.$player_list->getName(); - echo ($player_list->isDeleted()) ? ' [DELETED]' : ''; - echo ''.$player_list->getLevel().' '.$config['vocations'][$player_list->getVocation()].'' . $player_list_status . '
'; - } - echo '

' . generate_search_table(); - echo ''; - } - else - { - $search_errors[] = 'Character ' . $name . ' does not exist or has been deleted.'; - output_errors($search_errors); - $search_errors = array(); - - $promotion = ''; - if(fieldExist('promotion', 'players')) - $promotion = ', `promotion`'; - - $deleted = 'deleted'; - if(fieldExist('deletion', 'players')) - $deleted = 'deletion'; - - $query = $db->query('SELECT `name`, `level`, `vocation`' . $promotion . ' FROM `players` WHERE `name` LIKE ' . $db->quote('%' . $name . '%') . ' AND ' . $deleted . ' != 1;'); - if($query->rowCount() > 0) - { - echo 'Did you mean:'; } - echo generate_search_table(true); + if($config['characters']['frags']) + { + //frags list by Xampy + $i = 0; + $frags_limit = 10; // frags limit to show? // default: 10 + $player_frags = $db->query('SELECT `player_deaths`.*, `players`.`name`, `killers`.`unjustified` FROM `player_deaths` LEFT JOIN `killers` ON `killers`.`death_id` = `player_deaths`.`id` LEFT JOIN `player_killers` ON `player_killers`.`kill_id` = `killers`.`id` LEFT JOIN `players` ON `players`.`id` = `player_deaths`.`player_id` WHERE `player_killers`.`player_id` = '.$player->getId().' ORDER BY `date` DESC LIMIT 0,'.$frags_limit.';'); + if(count($player_frags)) + { + $frags = 0; + $frag_add_content .= '
'; + foreach($player_frags as $frag) + { + $frags++; + $frag_add_content .= ' + + "; + } + if($frags > 0) + echo $frag_add_content . '
Victims
' . date("j M Y, H:i", $frag['date']) . 'Fragged ' . $frag[name] . ' at level ' . $frag[level]; + + $frag_add_content .= ". (".(($frag['unjustified'] == 0) ? "Justified" : "Unjustified").")
'; + } + } + + //Signature + //Js + if($config['signature_enabled']) + { + echo ''; + echo '
+ + +
Signature
'; + $signature_url = BASE_URL . 'tools/signature/?name=' . urlencode($player->getName()); + if($config['friendly_urls']) + $signature_url = BASE_URL . urlencode($player->getName()) . '.png'; + + echo ' + Signature for player '.$player->getName().' +
+ Show links +
+ + + + + + + + + + + + + + +
'; } + + if($player->getCustomField('hidden') != 1) + { + $rows = 0; + echo '

+ + + + '; + + $realName = $account->getCustomField('rlname'); + if(!empty($realName)) + { + echo ' + + + + '; + } + + $group = $player->getGroup(); + if($group->isLoaded() && $group->getId() != 1) + { + echo + ' + + + '; + } + + $realLocation = $account->getCustomField('location'); + if(isset($realLocation[0])) + { + echo + ' + + + '; + } + + echo + ' + '; + $bannedUntil = ''; + if(tableExist('account_bans')) + $banned = $db->query('SELECT `expires_at` as `expires` FROM `account_bans` WHERE `account_id` = '.$account->getId().' and `expires_at` > ' . time()); + else + $banned = $db->query('SELECT `expires` FROM `bans` WHERE (`value` = '.$account->getId().' or `value` = '.$player->getId().') and `active` = 1 and `type` != 2 and `type` != 4 and `expires` > ' . time()); + foreach($banned as $ban) + { + if($ban['type'] != 2 and $ban['type'] != 4) + $bannedUntil = ' [Banished '.($ban['expires'] == "-1" ? 'forever' : 'until '.date("d F Y, h:s", $ban['expires'])).']'; + } + echo ' + +
Account Information
Real name:'.$realName.'
Position:' . ucfirst($group->getName()) . '
Location:'.$realLocation.'
Created:'.date("j F Y, g:i a", $account->getCustomField("created")).$bannedUntil.'
'; + + echo '

+ + + + + + + + + + '; + + $account_players = $account->getPlayersList(); + $account_players->orderBy('name'); + $player_number = 0; + foreach($account_players as $player_list) + { + $player_list_status = ''; + if($player_list->isHidden()) + continue; + + $player_number++; + if($player_list->isOnline()) + $player_list_status = 'Online'; + + echo ''; + } + echo '
Characters
NameLevelStatus 
'.$player_number.'. '.$player_list->getName(); + echo ($player_list->isDeleted()) ? ' [DELETED]' : ''; + echo ''.$player_list->getLevel().' '.$config['vocations'][$player_list->getVocation()].'' . $player_list_status . '
'; + } + echo '

' . generate_search_table(); + echo ''; } else - $search_errors[] = 'This name contains invalid letters. Please use only A-Z, a-z and space. Minimum length is 3 characters.'; +{ + $search_errors[] = 'Character ' . $name . ' does not exist or has been deleted.'; + output_errors($search_errors); + $search_errors = array(); + + $promotion = ''; + if(fieldExist('promotion', 'players')) + $promotion = ', `promotion`'; + + $deleted = 'deleted'; + if(fieldExist('deletion', 'players')) + $deleted = 'deletion'; + + $query = $db->query('SELECT `name`, `level`, `vocation`' . $promotion . ' FROM `players` WHERE `name` LIKE ' . $db->quote('%' . $name . '%') . ' AND ' . $deleted . ' != 1;'); + if($query->rowCount() > 0) + { + echo 'Did you mean:'; + } + + echo generate_search_table(true); +} if(!empty($search_errors)) output_errors($search_errors);