server->players->player_list as $pl) { $rank = $rasp->getRank($pl->login); $ranks[$pl->login] = $rank != 'None' ? (integer) preg_replace('/\/.*/', '', $rank) : PHP_INT_MAX; } asort($ranks); // compile the message if ($aseco->server->getGame() == 'TMN') { $head = 'Online Ranks ({#login}rank $g/{#nick} nick$g):' . LF; $msg = ''; $lines = 0; $player->msgs = array(); $player->msgs[0] = 1; foreach ($ranks as $pl => $rk) { $play = $aseco->server->players->getPlayer($pl); $msg .= '$z{#login}' . ($rk != PHP_INT_MAX ? $rk : '{#grey}') . '$g / {#black}' . $play->nickname . LF; if (++$lines > 9) { $player->msgs[] = $aseco->formatColors($head . $msg); $lines = 0; $msg = ''; } } // add if last batch exists if ($msg != '') $player->msgs[] = $aseco->formatColors($head . $msg); // display popup message if (count($player->msgs) == 2) { $aseco->client->query('SendDisplayServerMessageToLogin', $player->login, $player->msgs[1], 'OK', '', 0); } else { // > 2 $aseco->client->query('SendDisplayServerMessageToLogin', $player->login, $player->msgs[1], 'Close', 'Next', 0); } } elseif ($aseco->server->getGame() == 'TMF') { $head = 'Online Ranks ({#login}rank $g/{#nick} nick$g):'; $msg = array(); $lines = 0; $player->msgs = array(); $player->msgs[0] = array(1, $head, array(0.8, 0.15, 0.65), array('Icons128x128_1', 'Buddies')); foreach ($ranks as $pl => $rk) { $play = $aseco->server->players->getPlayer($pl); $msg[] = array('{#login}' . ($rk != PHP_INT_MAX ? $rk : '{#grey}'), '{#black}' . $play->nickname); if (++$lines > 14) { $player->msgs[] = $msg; $lines = 0; $msg = array(); } } // add if last batch exists if (!empty($msg)) $player->msgs[] = $msg; // display ManiaLink message display_manialink_multi($player); } } // chat_ranks function chat_clans($aseco, $command) { $player = $command['author']; $clans = array(); // sort players by clan, insuring clanless are last by sorting on chr(255) foreach ($aseco->server->players->player_list as $pl) { $clans[$pl->login] = $pl->teamname ? $pl->teamname : chr(255); } asort($clans); // compile the message if ($aseco->server->getGame() == 'TMN') { $head = 'Online Clans ({#login}clan $g/{#nick} nick$g):' . LF; $msg = ''; $lines = 0; $player->msgs = array(); $player->msgs[0] = 1; foreach ($clans as $pl => $tm) { $play = $aseco->server->players->getPlayer($pl); $msg .= '$z{#login}' . ($tm != chr(255) ? $tm : '{#grey}') . '$z / {#black}' . $play->nickname . LF; if (++$lines > 9) { $player->msgs[] = $aseco->formatColors($head . $msg); $lines = 0; $msg = ''; } } // add if last batch exists if ($msg != '') $player->msgs[] = $aseco->formatColors($head . $msg); // display popup message if (count($player->msgs) == 2) { $aseco->client->query('SendDisplayServerMessageToLogin', $player->login, $player->msgs[1], 'OK', '', 0); } else { // > 2 $aseco->client->query('SendDisplayServerMessageToLogin', $player->login, $player->msgs[1], 'Close', 'Next', 0); } } elseif ($aseco->server->getGame() == 'TMF') { $head = 'Online Clans ({#login}clan $g/{#nick} nick$g):'; $msg = array(); $lines = 0; $player->msgs = array(); $player->msgs[0] = array(1, $head, array(1.3, 0.65, 0.65), array('Icons128x128_1', 'Buddies')); foreach ($clans as $pl => $tm) { $play = $aseco->server->players->getPlayer($pl); $msg[] = array('{#login}' . ($tm != chr(255) ? $tm : '{#grey}'), '{#black}' . $play->nickname); if (++$lines > 14) { $player->msgs[] = $msg; $lines = 0; $msg = array(); } } // add if last batch exists if (!empty($msg)) $player->msgs[] = $msg; // display ManiaLink message display_manialink_multi($player); } } // chat_clans function chat_topclans($aseco, $command) { $player = $command['author']; if ($aseco->server->getGame() == 'TMN') { $msg = 'Current TOP 10 Clans $n(min. ' . $aseco->settings['topclans_minplayers'] . ' players)$m:'; $top = 10; $bgn = '{#black}'; // clanname begin } elseif ($aseco->server->getGame() == 'TMF') { $header = 'Current TOP 10 Clans $n(min. ' . $aseco->settings['topclans_minplayers'] . ' players)$m:'; $top = 10; $bgn = '{#black}'; // clanname begin } else { // TMS/TMO $msg = '{#server}> Current TOP 4 Clans $n(min. ' . $aseco->settings['topclans_minplayers'] . ' players)$m:{#highlite}'; $top = 4; $bgn = '{#highlite}'; $end = '{#highlite}'; } // find best ranked $query = 'SELECT TeamName, count, teamrank FROM ( SELECT TeamName, COUNT(avg) AS count, SUM(avg)/COUNT(avg) AS teamrank FROM players,rs_rank WHERE players.id=rs_rank.playerid GROUP BY TeamName) as sub WHERE sub.count>=' . $aseco->settings['topclans_minplayers'] . ' ORDER BY sub.teamrank LIMIT ' . $top; $res = mysql_query($query); if (mysql_num_rows($res) == 0) { $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors('{#server}> {#error}No clan(s) found!'), $player->login); mysql_free_result($res); return false; } // compile the message with sorted clans if ($aseco->server->getGame() == 'TMN') { $i = 1; while ($row = mysql_fetch_object($res)) { $msg .= LF . $i . '. ' . $bgn . str_pad($row->TeamName . '$z $n(' . $row->count . ')$m', 35) . ' - ' . sprintf("%4.1F", $row->teamrank/10000); $i++; } // display popup message $aseco->client->query('SendDisplayServerMessageToLogin', $player->login, $aseco->formatColors($msg), 'OK', '', 0); } elseif ($aseco->server->getGame() == 'TMF') { $i = 1; while ($row = mysql_fetch_object($res)) { $msg[] = array($i . '.', $bgn . $row->TeamName . '$z $n(' . $row->count . ')$m', sprintf("%4.1F", $row->teamrank/10000)); $i++; } // display ManiaLink message display_manialink($player->login, $header, array('BgRaceScore2', 'Podium'), $msg, array(0.95, 0.1, 0.7, 0.15), 'OK'); } else { // TMS/TMO $i = 1; while ($row = mysql_fetch_object($res)) { $msg .= LF . $i . '. ' . $bgn . str_pad(stripColors($row->TeamName) . $end . ' $n(' . $row->count . ')$m', 25) . ' - ' . sprintf("%4.1F", $row->teamrank/10000); $i++; } // show chat message $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($msg), $player->login); } mysql_free_result($res); } // chat_topclans ?>