login; // check for relay server if ($aseco->server->isrelay) { $message = formatText($aseco->getChatMessage('NOTONRELAY')); $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($message), $login); return; } if ($aseco->server->records->count() > 0) { // get the first ranked record $record = $aseco->server->records->getRecord(0); // show chat message $message = formatText($aseco->getChatMessage('FIRST_RECORD')) . formatText($aseco->getChatMessage('RANKING_RECORD_NEW'), 1, stripColors($record->player->nickname), ($aseco->server->gameinfo->mode == Gameinfo::STNT ? $record->score : formatTime($record->score))); $message = substr($message, 0, strlen($message)-2); // strip trailing ", " $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($message), $login); } else { $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors('{#server}> {#error}No records found!'), $login); } } // chat_firstrec function chat_lastrec($aseco, $command) { $login = $command['author']->login; // check for relay server if ($aseco->server->isrelay) { $message = formatText($aseco->getChatMessage('NOTONRELAY')); $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($message), $login); return; } if ($total = $aseco->server->records->count()) { // get the last ranked record $record = $aseco->server->records->getRecord($total-1); // show chat message $message = formatText($aseco->getChatMessage('LAST_RECORD')) . formatText($aseco->getChatMessage('RANKING_RECORD_NEW'), $total, stripColors($record->player->nickname), ($aseco->server->gameinfo->mode == Gameinfo::STNT ? $record->score : formatTime($record->score))); $message = substr($message, 0, strlen($message)-2); // strip trailing ", " $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($message), $login); } else { $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors('{#server}> {#error}No records found!'), $login); } } // chat_lastrec function chat_nextrec($aseco, $command) { $login = $command['author']->login; // check for relay server if ($aseco->server->isrelay) { $message = formatText($aseco->getChatMessage('NOTONRELAY')); $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($message), $login); return; } if ($total = $aseco->server->records->count()) { $found = false; // find ranked record for ($i = 0; $i < $total; $i++) { $rec = $aseco->server->records->getRecord($i); if ($rec->player->login == $login) { $rank = $i; $found = true; break; } } if ($found) { // get current and next better ranked records $nextrank = ($rank > 0 ? $rank-1 : 0); $record = $aseco->server->records->getRecord($rank); $next = $aseco->server->records->getRecord($nextrank); // compute difference to next record if ($aseco->server->gameinfo->mode != Gameinfo::STNT) { $diff = $record->score - $next->score; $sec = floor($diff/1000); $hun = ($diff - ($sec * 1000)) / 10; } else { // Stunts mode $diff = $next->score - $record->score; } // show chat message $message1 = formatText($aseco->getChatMessage('RANKING_RECORD_NEW'), $rank+1, stripColors($record->player->nickname), ($aseco->server->gameinfo->mode == Gameinfo::STNT ? $record->score : formatTime($record->score))); $message1 = substr($message1, 0, strlen($message1)-2); // strip trailing ", " $message2 = formatText($aseco->getChatMessage('RANKING_RECORD_NEW'), $nextrank+1, stripColors($next->player->nickname), ($aseco->server->gameinfo->mode == Gameinfo::STNT ? $record->score : formatTime($next->score))); $message2 = substr($message2, 0, strlen($message2)-2); // strip trailing ", " $message = formatText($aseco->getChatMessage('DIFF_RECORD'), $message1, $message2, ($aseco->server->gameinfo->mode == Gameinfo::STNT ? $diff : sprintf("%d.%02d", $sec, $hun))); $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($message), $login); } else { // look for unranked time instead $order = ($aseco->server->gameinfo->mode == Gameinfo::STNT ? 'DESC' : 'ASC'); $query = 'SELECT score FROM rs_times WHERE playerID=' . $command['author']->id . ' AND challengeID=' . $aseco->server->challenge->id . ' ORDER BY score ' . $order . ' LIMIT 1'; $result = mysql_query($query); if (mysql_num_rows($result) > 0) { $unranked = mysql_fetch_object($result); $found = true; } mysql_free_result($result); if ($found) { // get the last ranked record $last = $aseco->server->records->getRecord($total-1); // compute difference to next record if ($aseco->server->gameinfo->mode != Gameinfo::STNT) { $diff = $unranked->score - $last->score; $sec = floor($diff/1000); $hun = ($diff - ($sec * 1000)) / 10; } else { // Stunts mode $diff = $last->score - $unranked->score; } // show chat message $message1 = formatText($aseco->getChatMessage('RANKING_RECORD_NEW'), 'PB', stripColors($command['author']->nickname), ($aseco->server->gameinfo->mode == Gameinfo::STNT ? $unranked->score : formatTime($unranked->score))); $message1 = substr($message1, 0, strlen($message1)-2); // strip trailing ", " $message2 = formatText($aseco->getChatMessage('RANKING_RECORD_NEW'), $total, stripColors($last->player->nickname), ($aseco->server->gameinfo->mode == Gameinfo::STNT ? $last->score : formatTime($last->score))); $message2 = substr($message2, 0, strlen($message2)-2); // strip trailing ", " $message = formatText($aseco->getChatMessage('DIFF_RECORD'), $message1, $message2, ($aseco->server->gameinfo->mode == Gameinfo::STNT ? $diff : sprintf("%d.%02d", $sec, $hun))); $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($message), $login); } else { $message = '{#server}> {#error}You don\'t have a record on this track yet... use {#highlite}$i/lastrec'; $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($message), $login); } } } else { $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors('{#server}> {#error}No records found!'), $login); } } // chat_nextrec function chat_diffrec($aseco, $command) { $login = $command['author']->login; // check for relay server if ($aseco->server->isrelay) { $message = formatText($aseco->getChatMessage('NOTONRELAY')); $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($message), $login); return; } if ($total = $aseco->server->records->count()) { $found = false; // find ranked record for ($i = 0; $i < $total; $i++) { $rec = $aseco->server->records->getRecord($i); if ($rec->player->login == $login) { $rank = $i; $found = true; break; } } if ($found) { // get current and first ranked records $record = $aseco->server->records->getRecord($rank); $first = $aseco->server->records->getRecord(0); // compute difference to first record if ($aseco->server->gameinfo->mode != Gameinfo::STNT) { $diff = $record->score - $first->score; $sec = floor($diff/1000); $hun = ($diff - ($sec * 1000)) / 10; } else { // Stunts mode $diff = $first->score - $record->score; } // show chat message $message1 = formatText($aseco->getChatMessage('RANKING_RECORD_NEW'), $rank+1, stripColors($record->player->nickname), ($aseco->server->gameinfo->mode == Gameinfo::STNT ? $record->score : formatTime($record->score))); $message1 = substr($message1, 0, strlen($message1)-2); // strip trailing ", " $message2 = formatText($aseco->getChatMessage('RANKING_RECORD_NEW'), 1, stripColors($first->player->nickname), ($aseco->server->gameinfo->mode == Gameinfo::STNT ? $first->score : formatTime($first->score))); $message2 = substr($message2, 0, strlen($message2)-2); // strip trailing ", " $message = formatText($aseco->getChatMessage('DIFF_RECORD'), $message1, $message2, ($aseco->server->gameinfo->mode == Gameinfo::STNT ? $diff : sprintf("%d.%02d", $sec, $hun))); $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($message), $login); } else { $message = '{#server}> {#error}You don\'t have a record on this track yet... use {#highlite}$i/lastrec'; $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($message), $login); } } else { $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors('{#server}> {#error}No records found!'), $login); } } // chat_diffrec function chat_recrange($aseco, $command) { $login = $command['author']->login; // check for relay server if ($aseco->server->isrelay) { $message = formatText($aseco->getChatMessage('NOTONRELAY')); $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($message), $login); return; } if ($total = $aseco->server->records->count()) { // get the first & last ranked records $first = $aseco->server->records->getRecord(0); $last = $aseco->server->records->getRecord($total-1); // compute difference between records if ($aseco->server->gameinfo->mode != Gameinfo::STNT) { $diff = $last->score - $first->score; $sec = floor($diff/1000); $hun = ($diff - ($sec * 1000)) / 10; } else { // Stunts mode $diff = $first->score - $last->score; } // show chat message $message1 = formatText($aseco->getChatMessage('RANKING_RECORD_NEW'), 1, stripColors($first->player->nickname), ($aseco->server->gameinfo->mode == Gameinfo::STNT ? $first->score : formatTime($first->score))); $message1 = substr($message1, 0, strlen($message1)-2); // strip trailing ", " $message2 = formatText($aseco->getChatMessage('RANKING_RECORD_NEW'), $total, stripColors($last->player->nickname), ($aseco->server->gameinfo->mode == Gameinfo::STNT ? $last->score : formatTime($last->score))); $message2 = substr($message2, 0, strlen($message2)-2); // strip trailing ", " $message = formatText($aseco->getChatMessage('DIFF_RECORD'), $message1, $message2, ($aseco->server->gameinfo->mode == Gameinfo::STNT ? $diff : sprintf("%d.%02d", $sec, $hun))); $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($message), $login); } else { $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors('{#server}> {#error}No records found!'), $login); } } // chat_recrange ?>