playerlist = array(); if ($aseco->server->getGame() == 'TMN') { $head = 'Players On This Server:' . LF . 'Id {#nick}Nick $g/{#login} Login $g/{#black} $nNation$m'. LF; $msg = ''; $pid = 1; $lines = 0; $player->msgs = array(); $player->msgs[0] = 1; // create list of players, optionally by (sub)string foreach ($aseco->server->players->player_list as $pl) { if (strlen($command['params'][0]) == 0 || stripos(stripColors($pl->nickname), $command['params'][0]) !== false || stripos($pl->login, $command['params'][0]) !== false) { $plarr = array(); $plarr['login'] = $pl->login; $player->playerlist[] = $plarr; $msg .= '$g' . str_pad($pid, 2, '0', STR_PAD_LEFT) . '. {#black}' . str_ireplace('$w', '', $pl->nickname) . '$z / ' . ($aseco->isAnyAdmin($pl) ? '{#logina}' : '{#login}') . $pl->login . '$g / {#black}$n' . $pl->nation . '$m' . LF; $pid++; 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); } elseif (count($player->msgs) > 2) { $aseco->client->query('SendDisplayServerMessageToLogin', $player->login, $player->msgs[1], 'Close', 'Next', 0); } else { // == 1 $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors('{#server}> {#error}No player(s) found!'), $player->login); } } elseif ($aseco->server->getGame() == 'TMF') { $head = 'Players On This Server:'; $msg = array(); $msg[] = array('Id', '{#nick}Nick $g/{#login} Login', '{#black}Nation'); $pid = 1; $lines = 0; $player->msgs = array(); $player->msgs[0] = array(1, $head, array(1.3, 0.1, 0.9, 0.3), array('Icons128x128_1', 'Buddies')); // create list of players, optionally by (sub)string foreach ($aseco->server->players->player_list as $pl) { if (strlen($command['params'][0]) == 0 || stripos(stripColors($pl->nickname), $command['params'][0]) !== false || stripos($pl->login, $command['params'][0]) !== false) { $plarr = array(); $plarr['login'] = $pl->login; $player->playerlist[] = $plarr; // format nickname & login $ply = '{#black}' . $pl->nickname . '$z / ' . ($aseco->isAnyAdmin($pl) ? '{#logina}' : '{#login}') . $pl->login; // add clickable button if ($aseco->settings['clickable_lists'] && $pid <= 200) $ply = array($ply, $pid+2000); // action id $nat = $pl->nation; if (strlen($nat) > 14) $nat = mapCountry($nat); $msg[] = array(str_pad($pid, 2, '0', STR_PAD_LEFT) . '.', $ply, '{#black}' . $nat); $pid++; if (++$lines > 14) { $player->msgs[] = $msg; $lines = 0; $msg = array(); $msg[] = array('Id', '{#nick}Nick $g/{#login} Login', '{#black}Nation'); } } } // add if last batch exists if (count($msg) > 1) $player->msgs[] = $msg; // display ManiaLink message if (count($player->msgs) > 1) { display_manialink_multi($player); } else { // == 1 $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors('{#server}> {#error}No player(s) found!'), $player->login); } } } // chat_players // called @ onPlayerManialinkPageAnswer // Handles ManiaLink player responses // [0]=PlayerUid, [1]=Login, [2]=Answer function event_players($aseco, $answer) { // leave actions outside 2001 - 2200 to other handlers if ($answer[2] >= 2001 && $answer[2] <= 2200) { // get player $player = $aseco->server->players->getPlayer($answer[1]); $target = $player->playerlist[$answer[2]-2001]['login']; // log clicked command $aseco->console('player {1} clicked command "/stats {2}"', $player->login, $target); // close main window because /stats can take a while mainwindow_off($aseco, $player->login); // /stats selected player $command = array(); $command['author'] = $player; $command['params'] = $target; chat_stats($aseco, $command); } } // event_players ?>