Вот кусок из моего конфига, который используется для различных каналов общения
Код:
###############################################################################
# Подпрограммы ################################################################
###############################################################################
# - Процедура получения времени. Возвращает строчку [чч:мм:сс]
# - Процедура извлечения цветовой составляющей из строки.
# Возвращает цвет символа в диапазоне A..P
#
###############################################################################
sub real_time {
my @tm = localtime;
$tm[2] = "0$tm[2]" if($tm[2] < 10);
$tm[1] = "0$tm[1]" if($tm[1] < 10);
$tm[0] = "0$tm[0]" if($tm[0] < 10);
return ("[$tm[2]:$tm[1]:$tm[0]]");
}
sub real_date {
my @months = (
"Янв", "Фев", "Мар", "Апр", "Май", "Июн",
"Июл", "Авг", "Сен", "Окт", "Ноя", "Дек"
);
($day, $month, $year) = (localtime)[3, 4, 5];
$day = "0$day" unless($day > 9);
$month = $months[$month];
$year += 1900;
return ("$day $month $year");
}
sub get_color($$) {
# Параметры: строка с цветами в формате внутренних цветов mmc
# и номер символа в ней.
# Возвращаемое значение: цвет этого символа в диапазоне A..P
return chr(ord(substr($_[0], 2*$_[1]+1, 1))+ord('A'));
}
# #
###############################################################################
###############################################################################
# Окна общения ################################################################
###############################################################################
# 2я консоль : Приват
# 3я консоль : Сообщения группы
# 4я консоль : Клановый канал и союзники
# 6я консоль : Общий канал (болтать)
#
###############################################################################
my $col1 = "\003P";
my $col2 = "\003O";
my $col3 = "\003G";
trig {
if($1 eq 'группе') {
wecho(2, (real_time() . " \003OВы: $2"));
}
elsif($1 eq 'всем') {
wecho(5, (real_time() . " \003IВы сказали всем: \"$2\""));
}
else {
wecho(1, (real_time() . " \003C$1: $2"));
$: = $col1 . "[$col3 private $col1" . "] \003C$1:\003C $2";
}
} '^Вы сказали (.+?): "(.+)"$', '1000:wtalk';
trig {
wecho(1, (real_time() . " \003G$1: $2"));
$: = $col1 . "[$col3 private $col1" . "] \003G$1:\003G $2";
} '^([А-Яа-я]+) сказал.? [Вв]ам: "(.+)"$', '1000:wtalk';
trig {
wecho(2, (real_time() . " \003O$1: $2"));
} '^([А-Яа-я]+) сказал.? группе: "(.+)"$', '1000:wtalk';
trig {
wecho(5, (real_time() . " \003I$_"));
} '^([А-Яа-я]+) сказал.? всем: "(.+)"$', '1000:wtalk';
trig {
wecho(3, (real_time() . " \003G$1\003P $2 \003H$3"));
} '^(\[[\sА-Яа-я]+\]:) ([А-Яа-я]+:) (.+)$','1000:wtalk';
# #
###############################################################################