public function loadLevel()
{
$this->setClass('Highscore');
$this->addOrder(new SQL_Order(new SQL_Field('experience'), SQL_Order::DESC));
$this->addExtraField(new SQL_Field('flag', 'accounts'));
$filter = new SQL_Filter(new SQL_Field('world_id', 'players'), SQL_Filter::EQUAL, $this->worldId);
if($this->vocation != '')
$filter = new SQL_Filter($filter, SQL_Filter::CRITERIUM_AND, new SQL_Filter(new SQL_Field('vocation', 'players'), SQL_Filter::EQUAL, $this->vocation));
if($this->highscoreConfig->isSetKey('groups_hidden'))
foreach($this->highscoreConfig->getValue('groups_hidden') as $_group_filter)
$filter = new SQL_Filter($filter, SQL_Filter::CRITERIUM_AND, new SQL_Filter(new SQL_Field('group_id', 'players'), SQL_Filter::NOT_EQUAL, $_group_filter));
if($this->highscoreConfig->isSetKey('accounts_hidden'))
foreach($this->highscoreConfig->getValue('accounts_hidden') as $_account_filter)
$filter = new SQL_Filter($filter, SQL_Filter::CRITERIUM_AND, new SQL_Filter(new SQL_Field('account_id', 'players'), SQL_Filter::NOT_EQUAL, $_account_filter));
$filter = new SQL_Filter(new SQL_Filter(new SQL_Field('account_id', 'players'), SQL_Filter::EQUAL, new SQL_Field('id', 'accounts')), SQL_Filter::CRITERIUM_AND, $filter);
$this->setFilter($filter);
}