MMC
Материал из Википедии - свободной энциклопедии.
| Содержание |
Что это такое?
MMC - один из наиболее популярных клиентов для MUD'а. Одно из основных его преимуществ - наличие версий как для Unix, так и для Win систем. Скачать его вы можете на на закладке "Файлы", перейдя туда с основной страницы сайта. А здесь мы будем делиться способами сделать свой клиент удобнее.
Примеры конфигов
Конфиг Alpha:
CMD::cmd_ticksize(50);
MUD::logopen
(
"./log/".
(
(sub
{
sprintf("%02d",$_[3]).'-'.
sprintf("%02d",$_[4]+1).'-'.
($_[5]+1900)
}
)->(localtime)
).".txt");
sub simple_trigger
{
ref ($_[0]->[0]) eq 'ARRAY'
?map { eval ('trig { sendl("'.$_[0]->[1].'") } q{'.$_.'}, "'.$_[0]->[2].'"') } @{$_[0]->[0]}
:eval ('trig { sendl("'.$_[0]->[1].'") } q{'.$_[0]->[0].'}, "'.$_[0]->[2].'"');
;
}
simple_trigger($_)
for
(
['^Ты исчезаешь в никуда.$','look','1000g:CORE'],
['ОБЕЗОРУЖИЛ','get all.ran|wear ran|dual ran','1000:CORE'],
[
[
'Вы голодны.',
'Вы хотите пить.',
'You are starving!',
'You are dying of thirst!'
],'dri abys','1000:CORE'
]
);
trig { echo((' 'x43)."\003P <(+=- Cast -=+)> \003H") }
'^Ты начинаешь колдовать...$',
'1000g:CORE';
trig { echo((' 'x43)."\003C <(+=- \003JFail\003C -=+)> \003H") }
'^Ты не можешь сконцентрироваться.$',
'1000g:CORE';
map
{
trig
{
CMD::cmd_tickset();
sendl('who')
}
'^'.$_.'$',
'1000:CORE';
}
(
"Начинается новый день.",
"Солнце медленно опустилось за горизонт.",
"Небо прояснилось.",
"Восток озарился светом восходящего солнца.",
"Молния озарила небо.", "Гроза кончилась.",
"The rain convert to snow.",
"Начинается дождь.",
"Дождь прекратился.",
"Сгустились сумерки и наступила ночь.",
"Снег прекратился.",
"Начинается снег.",
"Снег переходит в дождь.",
"Небо затянулось тучами."
);
trig
{
unless ($es)
{
sendl('wear sea-blue|wear circlet');
$es = 1;
}
}
'в ужасном состоянии\.',
'1000:EXP';
trig
{
if ($es)
{
sendl('wear unholy|wear helm');
$es = 0;
}
}
'мертв.?!!|предсмертный|Ты получаешь \d+ очков опыта\.',
'1000:EXP';
hook
{
$_ = $last = shift();
s/^"/chat /;
s/{/\\{/g;
s/MSM/3014/gi;
$_
}
'input';
#"
bindkey
{
MUD::conn("mud.nnov.net", "9000", "");
hook
{
if (($prompt = shift) =~ /^..Select your codepage \(non-russian players should choose translit\): $/)
{
sendl("3")
}
elsif ($prompt =~ /^..By which name do you wish to be known\? $/)
{
sendl('***nick***')
}
elsif ($prompt =~ /^..Password: $/)
{
sendl("***pwd***");
CMD::cmd_unhook("prompt");
}
$prompt;
}
"prompt";
}
"f12";
bindkey { sendl($last) } "M- ";
Конфиг Minamoto:
Значок # используется в качестве коммента. Я буду сначала давать комментарии строке, потом писать ее.
# открываем файл с логом и начинаем запись
MUD::logopen("C:\\Progra~1\\MMC\\all.log");
__DATA__
# это список триггеров. Поскольку разделения не видно, скажу, как оно происходит. Сначала
# цифра - тип триггера (просто триггер, замена фразы, или замена фразы + триггер), потом
# символ табуляции, потом фраза, на которую надо реагировать, снова символ табуляции, строка,
# посылаемая в MMC (могут использоваться как внутренние команды MMC, так и команды серверу),
# два символа табуляции, приоритет триггера (от 0 до 2000, если не ошибаюсь), двоеточие, имя
# группы, которой принадлежит триггер. Группы испльзуются для того, чтобы включать-выключать
# группы триггеров. Включение делается так: /enable [группа], выключение - /disable [группа]
[triggers]
# Триггеры на поесть-попить в авторежиме.
1 Вас мучает жажда. get aby roc;dr aby;pu aby roc 1000:voda
1 Вы голодны. get aby roc;dr aby;pu aby roc 1000:eda
1 You are starving! get aby roc; dri aby;pu aby roc 1000:ce37e4
# Замена фразы на более яркую
2 Увы, ты не можешь идти туда &JОПЯТЬ\ УПЕРСЯ\ В\ СТЕНУ!!! 1000:ce8e80
# Автоматически красться, спрятаться.
1 Ты больше не чувствуешь себя скрытым sneak 1000:sneak
1 Ты выходишь из теней hide -1000:hide
# Если перс на адреналине, он не ложится, а садится на коврик
1 У тебя адреналин в крови! Ты не можешь уснуть! rest rug 1000:rest
# Заводим тикер
1 На твоих руках больше нет крови /ticksize 50;/tickset 1000:tickon
1 Сохранение /ticksize 50;/tickset 1000:tickon
# Авто-берсерк
1 Твое сердцебиение приходит в норму ber 1000:ber
1 Твой пульс подскакивает, но ничего не происходит ber 1000:ber
1 Твой гнев ослабевает ber 1000:ber
# Автоматически поднять оружие
1 ОБЕЗОРУЖИЛ get $fir;get $sec;wear $fir;sec $sec 1000:disarm
# Уведомление группе об изменении обкаста. Если в группе есть маг - чтобы он сразу сделал
# обкаст.
1 Ты начинаешь двигаться медленнее gt ***HASTE*** 1000:report
1 Белая аура вокруг твоего тела исчезает gt ***SANC*** 1000:report
1 Ты чувствуешь себя ослабшим gt ***GIANT*** 1000:report
# Копирует фразы телла и чата в отдельный канал. Доступ к каналам осуществляется при нажатии
# Alt+2 - Alt+0. Возвращение в основное окно - Alt+F1 (.+) - любое количество символов в
# начале сообщения, в исходящей фразе подставляется в $1, $2 и т.д.
1 (.+) говори(.+) (.+): (.+) /wecho 1 $1 говори$2 $3: &G$4;/wecho 1 1000:chat
1 (.+) говори(.+) (.+) '(.+)' /wecho 1 $1 говори$2 $3: &G$4;/wecho 1 1000:chat
1 (.+) болтае(.+) '(.+)' /wecho 2 $1 болтае$2: &D$3;/wecho 2 1000:chat
# Хуки отсылают команды программе при наступлении определенных событий. Connect - при
# подключении, disconnect - при отключении.
[hooks]
# Изменение настроек клавиш - теперь по клавишам вверх-вних идет поиск предыдущих сообщений,
# начинающихся с уже введенных символов. По умолчанию - введенные символы игнорируются.
disconnect /unbind up;/unbind down
connect /bind up @history_search_backward;/bind down @history_search_forward
# Алиасы - сокращения. Когда в начале строки вводятся символы, указанные здесь, программа
# заменяет их на полное сообщение, в случае необходимости заменяя $0 на все агрументы, с
# которыми введена строка. Чтобы обрабатывать аргументы по отдельности, необходимо
# использовать $1, $2 и т.д.
[aliases]
oo order all $0
wa wake;get rug; pu rug roc
11 rem $fir;rem $sec
sl get rug roc; dro rug; sl rug
22 wear $fir;sec $sec
# Бинды реагируют на нажатия указанных клавиш. Обозначение M- означает удержание клавиши Alt,
# C- - клавиши Ctrl.
[keys]
f1 /connect localhost 9000
f2 /connect localhost 4000
M-f4 /quit
f3 /connect mud.nnov.net 9000
# Переменные, используемые в программе. Задаются с помощью команды /set [имя
# переменной] [значение] Доступ к ним осуществляется использованием значка $. например,
# в этих обозначениях при использовании фразы $sec программа передаст на сервер значение
# ciq.
[vars]
fir stil
m 0
fex w
sec ciq
contain back
_ticker
Настройка
Копируем код в свой mmc.ini. Заменяем ***nick*** на свой ник, ***pwd*** на свой пароль. Заменяем get all.ran|wear ran|dual ran на процедуру поднимания и одевания своего оружия. Заменяем wear unholy|wear helm на процедуру одевания своего шлема и робы.
Ссылки
http://mmc.mud.ru/mmc.txt - качественный мануал на русском языке от создателя. Там есть абсолютно ВСЁ.
http://mmc.mud.ru/sample.mmcrc - очень большой и хорошо прокомментированый конфиг для мага из какого-то буржуйского мада. Примеры которых нет по предыдущей ссылке и в статье есть здесь.

