| 1 | <?php
|
|---|
| 2 |
|
|---|
| 3 | $order_by = (isset($_GET['order'])) ? $db->real_escape_string($_GET['order']) : 'name';
|
|---|
| 4 | $dir = (isset($_GET['dir'])) ? $db->real_escape_string($_GET['dir']) : 'down';
|
|---|
| 5 | $order_dir = ($dir == 'up') ? 'ASC' :'DESC';
|
|---|
| 6 | $dir = ($dir == 'down') ? 'up' : 'down';
|
|---|
| 7 | $dir_img = ($dir == 'down') ? '<img src="'.$html->Link('/imgs/inc/up.gif').'" alt="vzestupně" />' : '<img src="'.$html->Link('/imgs/inc/down.gif').'" alt="sestupně"/>';
|
|---|
| 8 |
|
|---|
| 9 | function MakeLink($show, $sort)
|
|---|
| 10 | {
|
|---|
| 11 | global $dir, $dir_img, $html;
|
|---|
| 12 |
|
|---|
| 13 | if(isset($_GET['order']) and $_GET['order'] == $sort)
|
|---|
| 14 | {
|
|---|
| 15 | $arrow = $dir_img;
|
|---|
| 16 | }
|
|---|
| 17 | else
|
|---|
| 18 | {
|
|---|
| 19 | $arrow = '';
|
|---|
| 20 | }
|
|---|
| 21 | return($arrow.'<a href="'.$html->Link('/online-hraci/?order='.$sort.'&dir='.$dir).'">'.$show.'</a>');
|
|---|
| 22 | }
|
|---|
| 23 |
|
|---|
| 24 | echo('<h3 class="PageTitle">Online hráči</h3>');
|
|---|
| 25 |
|
|---|
| 26 | if(array_key_exists('RealmIndex', $_COOKIE))
|
|---|
| 27 | {
|
|---|
| 28 | $Realm = new Realm($System, $_COOKIE['RealmIndex']);
|
|---|
| 29 | echo('<div style="text-align: center">Celkem '.$Realm->OnlineCharactersCount().' hráčů.</div>'.
|
|---|
| 30 | '<table class="BaseTable">
|
|---|
| 31 | <tr>
|
|---|
| 32 | <th align="center">Frakce</th>
|
|---|
| 33 | <th align="center">'.MakeLink('Jméno', 'name').'</th>
|
|---|
| 34 | <th align="center">'.MakeLink('Rasa', 'race').'</th>
|
|---|
| 35 | <th align="center">'.MakeLink('Třída', 'class').'</th>
|
|---|
| 36 | <th align="center">'.MakeLink('Úroveň', 'level').'</th>
|
|---|
| 37 | <th align="center">'.MakeLink('Mapa', 'map').'</th>
|
|---|
| 38 | <th align="center">'.MakeLink('Body cti', 'highest_rank').'<br />'.
|
|---|
| 39 | MakeLink('Body arén', 'arena_points').'</th></tr>');
|
|---|
| 40 |
|
|---|
| 41 | $sql = $Realm->CharactersDatabase->query('SELECT guid, name, race, class, zone, map, '.
|
|---|
| 42 | 'CAST( SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, " ", '.$Config['Mangos']['CharacterDataOffset']['HonorPoints'].'+1), " ", -1) AS UNSIGNED) AS highest_rank, '.
|
|---|
| 43 | 'CAST( SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, " ", '.$Config['Mangos']['CharacterDataOffset']['Level'].' + 1), " ", -1) AS UNSIGNED) AS level, '.
|
|---|
| 44 | 'CAST( SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, " ", '.$Config['Mangos']['CharacterDataOffset']['ArenaPoints'].' + 1), " ", -1) AS UNSIGNED) AS arena_points, '.
|
|---|
| 45 | 'mid(lpad( hex( CAST(substring_index(substring_index(data, " ", '.$Config['Mangos']['CharacterDataOffset']['Gender'].' + 1), " ", -1) as unsigned) ), 8, 0), 4, 1) AS gender '.
|
|---|
| 46 | 'FROM `characters` WHERE `online`= 1 ORDER BY `'.$order_by.'` '.$order_dir);
|
|---|
| 47 | while($row = $sql->fetch_assoc())
|
|---|
| 48 | {
|
|---|
| 49 | $aliance = array(1, 3, 4, 7, 11);
|
|---|
| 50 | $frakce = (in_array($row['race'], $aliance)) ? '<img src="'.$html->Link('/imgs/inc/a.gif').'" alt="aliance"/>' : '<img src="'.$html->Link('/imgs/inc/h.gif').'" alt="horda" />';
|
|---|
| 51 | $gender = ($row['gender'] == 0) ? '0' : '1';
|
|---|
| 52 | echo('<tr>
|
|---|
| 53 | <td align="center">'.$frakce.'</td>
|
|---|
| 54 | <td align="center">'.$row['name'].'</td>
|
|---|
| 55 | <td align="center"><img src="'.$html->Link('/imgs/icons/'.$row['race'].'-'.$gender.'.gif').'" alt="rasa" /></td>
|
|---|
| 56 | <td align="center"><img src="'.$html->Link('/imgs/icons/'.$row['class'].'.gif').'" alt="třída" /></td>
|
|---|
| 57 | <td align="center">'.$row['level'].'</td>
|
|---|
| 58 | <td align="center">'.$server->MapName($row['map']).'<br />('.$server->ZoneName($row['zone']).')</td>
|
|---|
| 59 | <td align="center">'.$row['highest_rank'].'<br />'.$row['arena_points'].'</td></tr>');
|
|---|
| 60 | }
|
|---|
| 61 | echo('</table>');
|
|---|
| 62 | } else
|
|---|
| 63 | {
|
|---|
| 64 | $PlayerList = array();
|
|---|
| 65 | $DbResult2 = $System->Database->query('SELECT * FROM Realm WHERE Enabled =1');
|
|---|
| 66 | while($DbRealm = $DbResult2->fetch_assoc())
|
|---|
| 67 | {
|
|---|
| 68 | $Realm = new Realm($System, $DbRealm['Id']);
|
|---|
| 69 | $sql = $Realm->CharactersDatabase->query('SELECT guid, name, race, class, zone, map, '.
|
|---|
| 70 | 'CAST( SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, " ", '.$Config['Mangos']['CharacterDataOffset']['HonorPoints'].'+1), " ", -1) AS UNSIGNED) AS highest_rank, '.
|
|---|
| 71 | 'CAST( SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, " ", '.$Config['Mangos']['CharacterDataOffset']['Level'].' + 1), " ", -1) AS UNSIGNED) AS level, '.
|
|---|
| 72 | 'CAST( SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, " ", '.$Config['Mangos']['CharacterDataOffset']['ArenaPoints'].' + 1), " ", -1) AS UNSIGNED) AS arena_points, '.
|
|---|
| 73 | 'mid(lpad( hex( CAST(substring_index(substring_index(data, " ", '.$Config['Mangos']['CharacterDataOffset']['Gender'].' + 1), " ", -1) as unsigned) ), 8, 0), 4, 1) AS gender '.
|
|---|
| 74 | 'FROM `characters` WHERE `online`= 1');
|
|---|
| 75 | $I = 0;
|
|---|
| 76 | while($DbRow = $sql->fetch_assoc())
|
|---|
| 77 | {
|
|---|
| 78 | $DbRow['svet'] = $DbRealm['Name'];
|
|---|
| 79 | $PlayerList[$DbRow[$order_by].$I] = $DbRow;
|
|---|
| 80 | $I++;
|
|---|
| 81 | }
|
|---|
| 82 | }
|
|---|
| 83 |
|
|---|
| 84 | echo('<div style="text-align: center">Celkem '.count($PlayerList).' hráčů ve všech světech.</div>'.
|
|---|
| 85 | '<table class="BaseTable">
|
|---|
| 86 | <tr>'.
|
|---|
| 87 | '<th align="center">Frakce</th>'.
|
|---|
| 88 | '<th align="center">'.MakeLink('Jméno', 'name').'</th>'.
|
|---|
| 89 | '<th align="center">'.MakeLink('Rasa', 'race').'</th>'.
|
|---|
| 90 | '<th align="center">'.MakeLink('Třída', 'class').'</th>'.
|
|---|
| 91 | '<th align="center">'.MakeLink('Úroveň', 'level').'</th>'.
|
|---|
| 92 | '<th align="center">'.MakeLink('Svět', 'svet').'</th>'.
|
|---|
| 93 | '</tr>');
|
|---|
| 94 |
|
|---|
| 95 | if($order_dir == 'ASC') ksort($PlayerList);
|
|---|
| 96 | else krsort($PlayerList);
|
|---|
| 97 |
|
|---|
| 98 | foreach($PlayerList as $row)
|
|---|
| 99 | {
|
|---|
| 100 | $aliance = array(1, 3, 4, 7, 11);
|
|---|
| 101 | $frakce = (in_array($row['race'], $aliance)) ? '<img src="'.$html->Link('/imgs/inc/a.gif').'" alt="aliance"/>' : '<img src="'.$html->Link('/imgs/inc/h.gif').'" alt="horda" />';
|
|---|
| 102 | $gender = ($row['gender'] == 0) ? '0' : '1';
|
|---|
| 103 | echo('<tr>'.
|
|---|
| 104 | '<td align="center">'.$frakce.'</td>'.
|
|---|
| 105 | '<td align="center">'.$row['name'].'</td>'.
|
|---|
| 106 | '<td align="center"><img src="'.$html->Link('/imgs/icons/'.$row['race'].'-'.$gender.'.gif').'" alt="rasa" /></td>'.
|
|---|
| 107 | '<td align="center"><img src="'.$html->Link('/imgs/icons/'.$row['class'].'.gif').'" alt="třída" /></td>'.
|
|---|
| 108 | '<td align="center">'.$row['level'].'</td>'.
|
|---|
| 109 | '<td align="center">'.$row['svet'].'</td>'.
|
|---|
| 110 | '</tr>');
|
|---|
| 111 | }
|
|---|
| 112 | echo('</table>');
|
|---|
| 113 | }
|
|---|
| 114 |
|
|---|
| 115 | ?>
|
|---|