getPlayerParam($player, $command['params'][0])) return; // check for a message if (isset($command['params'][1]) && $command['params'][1] != '') { $stamp = date('H:i:s'); // strip wide fonts from nicks $plnick = str_ireplace('$w', '', $player->nickname); $tgnick = str_ireplace('$w', '', $target->nickname); // drop oldest pm line if sender's buffer full if (count($player->pmbuf) >= $pmlen) { array_shift($player->pmbuf); } // append timestamp, sender nickname and pm line to sender's history $player->pmbuf[] = array($stamp, $plnick, $command['params'][1]); // drop oldest pm line if receiver's buffer full if (count($target->pmbuf) >= $pmlen) { array_shift($target->pmbuf); } // append timestamp, sender nickname and pm line to receiver's history $target->pmbuf[] = array($stamp, $plnick, $command['params'][1]); // show chat message to both players $msg = '{#error}-pm-$g[' . $plnick . '$z$s$i->' . $tgnick . '$z$s$i]$i {#interact}' . $command['params'][1]; $msg = $aseco->formatColors($msg); $aseco->client->addCall('ChatSendServerMessageToLogin', array($msg, $target->login)); $aseco->client->addCall('ChatSendServerMessageToLogin', array($msg, $player->login)); if (!$aseco->client->multiquery()) { trigger_error('[' . $aseco->client->getErrorCode() . '] ChatSend PM (multi) - ' . $aseco->client->getErrorMessage(), E_USER_WARNING); } // check if player muting is enabled if ($muting_available) { // append pm line to both players' buffers if (count($target->mutebuf) >= 28) { // chat window length array_shift($target->mutebuf); } $target->mutebuf[] = $msg; if (count($player->mutebuf) >= 28) { // chat window length array_shift($player->mutebuf); } $player->mutebuf[] = $msg; } } else { $msg = '{#server}> {#error}No message!'; $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($msg), $player->login); } } // chat_pm function chat_pma($aseco, $command) { global $muting_available, // from plugin.muting.php $pmlen; // from chat.admin.php $command['params'] = explode(' ', $command['params'], 2); $player = $command['author']; $target = $player; // check for admin ability if ($aseco->allowAbility($player, 'chat_pma')) { // get player login or ID if (!$target = $aseco->getPlayerParam($player, $command['params'][0])) return; // check for a message if ($command['params'][1] != '') { $stamp = date('H:i:s'); // strip wide fonts from nicks $plnick = str_ireplace('$w', '', $player->nickname); $tgnick = str_ireplace('$w', '', $target->nickname); // drop oldest pm line if receiver's history full if (count($target->pmbuf) >= $pmlen) { array_shift($target->pmbuf); } // append timestamp, sender nickname and pm line to receiver's history $target->pmbuf[] = array($stamp, $plnick, $command['params'][1]); // show chat message to receiver $msg = '{#error}-pm-$g[' . $plnick . '$z$s$i->' . $tgnick . '$z$s$i]$i {#interact}' . $command['params'][1]; $msg = $aseco->formatColors($msg); $aseco->client->addCall('ChatSendServerMessageToLogin', array($msg, $target->login)); // check if player muting is enabled if ($muting_available) { // drop oldest message if receiver's mute buffer full if (count($target->mutebuf) >= 28) { // chat window length array_shift($target->mutebuf); } // append pm line to receiver's mute buffer $target->mutebuf[] = $msg; } // show chat message to all admins foreach ($aseco->server->players->player_list as $admin) { // check for admin ability if ($aseco->allowAbility($admin, 'chat_pma')) { // drop oldest pm line if admin's buffer full if (count($admin->pmbuf) >= $pmlen) { array_shift($admin->pmbuf); } // append timestamp, sender nickname and pm line to admin's history $admin->pmbuf[] = array($stamp, $plnick, $command['params'][1]); // CC the message $aseco->client->addCall('ChatSendServerMessageToLogin', array($msg, $admin->login)); // check if player muting is enabled if ($muting_available) { // append pm line to admin's mute buffer if (count($admin->mutebuf) >= 28) { // chat window length array_shift($admin->mutebuf); } $admin->mutebuf[] = $msg; } } } if (!$aseco->client->multiquery()) { trigger_error('[' . $aseco->client->getErrorCode() . '] ChatSend PMA (multi) - ' . $aseco->client->getErrorMessage(), E_USER_WARNING); } } else { $msg = '{#server}> {#error}No message!'; $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($msg), $player->login); } } else { $msg = $aseco->getChatMessage('NO_ADMIN'); $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($msg), $player->login); } } // chat_pma function chat_pmlog($aseco, $command) { global $lnlen; // from chat.admin.php $player = $command['author']; $login = $player->login; if (!empty($player->pmbuf)) { if ($aseco->server->getGame() == 'TMN') { $head = 'Your recent PM history:' . LF; $msg = ''; $lines = 0; $player->msgs = array(); $player->msgs[0] = 1; foreach ($player->pmbuf as $item) { // break up long lines into chunks with continuation strings $multi = explode(LF, wordwrap(stripColors($item[2]), $lnlen, LF . '...')); foreach ($multi as $line) { $line = substr($line, 0, $lnlen+3); // chop off excessively long words $msg .= '$z' . ($aseco->settings['chatpmlog_times'] ? '$n<{#server}' . $item[0] . '$z$n>$m ' : '') . '[{#black}' . $item[1] . '$z] ' . $line . 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', $login, $player->msgs[1], 'OK', '', 0); } else { // > 2 $aseco->client->query('SendDisplayServerMessageToLogin', $login, $player->msgs[1], 'Close', 'Next', 0); } } elseif ($aseco->server->getGame() == 'TMF') { $head = 'Your recent PM history:'; $msg = array(); $lines = 0; $player->msgs = array(); $player->msgs[0] = array(1, $head, array(1.2), array('Icons64x64_1', 'Outbox')); foreach ($player->pmbuf as $item) { // break up long lines into chunks with continuation strings $multi = explode(LF, wordwrap(stripColors($item[2]), $lnlen+30, LF . '...')); foreach ($multi as $line) { $line = substr($line, 0, $lnlen+33); // chop off excessively long words $msg[] = array('$z' . ($aseco->settings['chatpmlog_times'] ? '<{#server}' . $item[0] . '$z> ' : '') . '[{#black}' . $item[1] . '$z] ' . $line); 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); } } else { $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors('{#server}> {#error}No PM history found!'), $login); } } // chat_pmlog function chat_hi($aseco, $command) { $player = $command['author']; // check if on global mute list if (in_array($player->login, $aseco->server->mutelist)) { $message = formatText($aseco->getChatMessage('MUTED'), '/hi'); $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($message), $player->login); return; } if ($command['params'] != '') { $msg = '$g[' . $player->nickname . '$z$s] {#interact}Hello ' . $command['params'] . ' !'; } else { $msg = '$g[' . $player->nickname . '$z$s] {#interact}Hello All !'; } $aseco->client->query('ChatSendServerMessage', $aseco->formatColors($msg)); } // chat_hi function chat_bye($aseco, $command) { $player = $command['author']; // check if on global mute list if (in_array($player->login, $aseco->server->mutelist)) { $message = formatText($aseco->getChatMessage('MUTED'), '/bye'); $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($message), $player->login); return; } if ($command['params'] != '') { $msg = '$g[' . $player->nickname . '$z$s] {#interact}Bye ' . $command['params'] . ' !'; } else { $msg = '$g[' . $player->nickname . '$z$s] {#interact}I have to go... Bye All !'; } $aseco->client->query('ChatSendServerMessage', $aseco->formatColors($msg)); } // chat_bye function chat_thx($aseco, $command) { $player = $command['author']; // check if on global mute list if (in_array($player->login, $aseco->server->mutelist)) { $message = formatText($aseco->getChatMessage('MUTED'), '/thx'); $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($message), $player->login); return; } if ($command['params'] != '') { $msg = '$g[' . $player->nickname . '$z$s] {#interact}Thanks ' . $command['params'] . ' !'; } else { $msg = '$g[' . $player->nickname . '$z$s] {#interact}Thanks All !'; } $aseco->client->query('ChatSendServerMessage', $aseco->formatColors($msg)); } // chat_thx function chat_lol($aseco, $command) { $player = $command['author']; // check if on global mute list if (in_array($player->login, $aseco->server->mutelist)) { $message = formatText($aseco->getChatMessage('MUTED'), '/lol'); $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($message), $player->login); return; } $msg = '$g[' . $player->nickname . '$z$s] {#interact}LoL !'; $aseco->client->query('ChatSendServerMessage', $aseco->formatColors($msg)); } // chat_lol function chat_lool($aseco, $command) { $player = $command['author']; // check if on global mute list if (in_array($player->login, $aseco->server->mutelist)) { $message = formatText($aseco->getChatMessage('MUTED'), '/lool'); $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($message), $player->login); return; } $msg = '$g[' . $player->nickname . '$z$s] {#interact}LooOOooL !'; $aseco->client->query('ChatSendServerMessage', $aseco->formatColors($msg)); } // chat_lool function chat_brb($aseco, $command) { $player = $command['author']; // check if on global mute list if (in_array($player->login, $aseco->server->mutelist)) { $message = formatText($aseco->getChatMessage('MUTED'), '/brb'); $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($message), $player->login); return; } $msg = '$g[' . $player->nickname . '$z$s] {#interact}Be Right Back !'; $aseco->client->query('ChatSendServerMessage', $aseco->formatColors($msg)); } // chat_brb function chat_afk($aseco, $command) { $player = $command['author']; // check if on global mute list if (in_array($player->login, $aseco->server->mutelist)) { $message = formatText($aseco->getChatMessage('MUTED'), '/afk'); $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($message), $player->login); return; } $msg = '$g[' . $player->nickname . '$z$s] {#interact}Away From Keyboard !'; $aseco->client->query('ChatSendServerMessage', $aseco->formatColors($msg)); // check for TMF & auto force spectator if ($aseco->server->getGame() == 'TMF' && $aseco->settings['afk_force_spec']) { if (!$aseco->isSpectator($player)) { // force player into spectator $rtn = $aseco->client->query('ForceSpectator', $player->login, 1); if (!$rtn) { trigger_error('[' . $aseco->client->getErrorCode() . '] ForceSpectator - ' . $aseco->client->getErrorMessage(), E_USER_WARNING); } else { // allow spectator to switch back to player $rtn = $aseco->client->query('ForceSpectator', $player->login, 0); } } // force free camera mode on spectator $aseco->client->addCall('ForceSpectatorTarget', array($player->login, '', 2)); // free up player slot $aseco->client->addCall('SpectatorReleasePlayerSlot', array($player->login)); } } // chat_afk function chat_gg($aseco, $command) { $player = $command['author']; // check if on global mute list if (in_array($player->login, $aseco->server->mutelist)) { $message = formatText($aseco->getChatMessage('MUTED'), '/gg'); $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($message), $player->login); return; } if ($command['params'] != '') { $msg = '$g[' . $player->nickname . '$z$s] {#interact}Good Game ' . $command['params'] . ' !'; } else { $msg = '$g[' . $player->nickname . '$z$s] {#interact}Good Game All !'; } $aseco->client->query('ChatSendServerMessage', $aseco->formatColors($msg)); } // chat_gg function chat_gr($aseco, $command) { $player = $command['author']; // check if on global mute list if (in_array($player->login, $aseco->server->mutelist)) { $message = formatText($aseco->getChatMessage('MUTED'), '/gr'); $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($message), $player->login); return; } if ($command['params'] != '') { $msg = '$g[' . $player->nickname . '$z$s] {#interact}Good Race ' . $command['params'] . ' !'; } else { $msg = '$g[' . $player->nickname . '$z$s] {#interact}Good Race !'; } $aseco->client->query('ChatSendServerMessage', $aseco->formatColors($msg)); } // chat_gr function chat_n1($aseco, $command) { $player = $command['author']; // check if on global mute list if (in_array($player->login, $aseco->server->mutelist)) { $message = formatText($aseco->getChatMessage('MUTED'), '/n1'); $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($message), $player->login); return; } if ($command['params'] != '') { $msg = '$g[' . $player->nickname . '$z$s] {#interact}Nice One ' . $command['params'] . ' !'; } else { $msg = '$g[' . $player->nickname . '$z$s] {#interact}Nice One !'; } $aseco->client->query('ChatSendServerMessage', $aseco->formatColors($msg)); } // chat_n1 function chat_bgm($aseco, $command) { $player = $command['author']; // check if on global mute list if (in_array($player->login, $aseco->server->mutelist)) { $message = formatText($aseco->getChatMessage('MUTED'), '/bgm'); $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($message), $player->login); return; } $msg = '$g[' . $player->nickname . '$z$s] {#interact}Bad Game for Me :('; $aseco->client->query('ChatSendServerMessage', $aseco->formatColors($msg)); } // chat_bgm function chat_official($aseco, $command) { global $rasp; $msg = $rasp->messages['OFFICIAL'][0]; $aseco->client->query('ChatSendServerMessageToLogin', $aseco->formatColors($msg), $command['author']->login); } // chat_official function chat_bootme($aseco, $command) { global $rasp; // show departure message and kick player $msg = formatText($rasp->messages['BOOTME'][0], $command['author']->nickname); $aseco->client->query('ChatSendServerMessage', $aseco->formatColors($msg)); if ($aseco->server->getGame() == 'TMF' && isset($rasp->messages['BOOTME_DIALOG'][0]) && $rasp->messages['BOOTME_DIALOG'][0] != '') $aseco->client->addCall('Kick', array($command['author']->login, $aseco->formatColors($rasp->messages['BOOTME_DIALOG'][0] . '$z'))); else $aseco->client->addCall('Kick', array($command['author']->login)); } // chat_bootme ?>