* @author Slawkens * @copyright 2017 MyAAC * @link http://my-aac.org */ defined('MYAAC') or die('Direct access not allowed!'); $title = 'Who is online?'; if($config['account_country']) require(SYSTEM . 'countries.conf.php'); $promotion = ''; if(fieldExist('promotion', 'players')) $promotion = '`promotion`,'; $order = isset($_GET['order']) ? $_GET['order'] : 'name'; if(!in_array($order, array('country', 'name', 'level', 'vocation'))) $order = $db->fieldName('name'); else if($order == 'country') $order = $db->tableName('accounts') . '.' . $db->fieldName('country'); else if($order == 'vocation') $order = $promotion . 'vocation ASC'; $skull_type = 'skull'; if(fieldExist('skull_type', 'players')) { $skull_type = 'skull_type'; } $skull_time = 'skulltime'; if(fieldExist('skull_time', 'players')) { $skull_time = 'skull_time'; } $outfit_addons = false; $outfit = ''; if($config['online_outfit']) { $outfit = ', lookbody, lookfeet, lookhead, looklegs, looktype'; if(fieldExist('lookaddons', 'players')) { $outfit .= ', lookaddons'; $outfit_addons = true; } } if($config['online_vocations']) { $vocs = array(); foreach($config['vocations'] as $id => $name) $vocs[$id] = 0; } if(tableExist('players_online')) // tfs 1.0 $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`' . $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_data = array(); $players = 0; $data = ''; foreach($playersOnline as $player) { $skull = ''; if($config['online_skulls']) { if($player['skulltime'] > 0) { if($player['skull'] == 3) $skull = ' '; elseif($player['skull'] == 4) $skull = ' '; elseif($player['skull'] == 5) $skull = ' '; } } if(isset($player['promotion'])) { if((int)$player['promotion'] > 0) $player['vocation'] += ($player['promotion'] * $config['vocations_amount']); } $players_data[] = array( 'name' => getPlayerLink($player['name']), 'player' => $player, 'level' => $player['level'], 'vocation' => $config['vocations'][$player['vocation']], 'country_image' => $config['account_country'] ? getFlagImage($player['country']) : null, 'outfit' => $config['online_outfit'] ? $config['outfit_images_url'] . '?id=' . $player['looktype'] . ($outfit_addons ? '&addons=' . $player['lookaddons'] : '') . '&head=' . $player['lookhead'] . '&body=' . $player['lookbody'] . '&legs=' . $player['looklegs'] . '&feet=' . $player['lookfeet'] : null ); if($config['online_vocations']) $vocs[($player['vocation'] > $config['vocations_amount'] ? $player['vocation'] - $config['vocations_amount'] : $player['vocation'])]++; } $record = ''; if($players > 0) { if($config['online_record']) { $timestamp = false; if(tableExist('server_record')) { $query = $db->query( 'SELECT `record`, `timestamp` FROM `server_record` WHERE `world_id` = ' . (int)$config['lua']['worldId'] . ' ORDER BY `record` DESC LIMIT 1'); $timestamp = true; } else if(tableExist('server_config')) { // tfs 1.0 $query = $db->query('SELECT `value` as `record` FROM `server_config` WHERE `config` = ' . $db->quote('players_record')); } else $query = NULL; if(isset($query) && $query->rowCount() > 0) { $result = $query->fetch(); $record = 'The maximum on this game world was ' . $result['record'] . ' players' . ($timestamp ? ' on ' . date("M d Y, H:i:s", $result['timestamp']) . '.' : '.'); } } } echo $twig->render('online.html.twig', array( 'players' => $players_data, 'record' => $record )); //search bar echo $twig->render('online.form.html.twig'); ?>