Показать сообщение отдельно
Старый 14.03.2005, 07:56   #1
Ladon
Отличник форума
 
Регистрация: 06.03.2004
Сообщений: 505
По умолчанию холдерское раздолье

триг для холдеров, по моему интересный Ж)

trig {
my $who=$1; #сохранение имени чара
my $req=$3; #сохранение запроса чара
echo ("$who $req"); #показ имени и запроса для визуального контроля
foreach my $item (keys %base) # цикл перебор всех предметов в базе известного шмота
{
if ($base{$item} =~ m/$req/) #если описание предмета содержит похожее на запрос
{
$item =~ s/^Предмет "(.*)"\,(.*)$/$1/; #отрубаем лишнее из данных лора (оно хранится в исходном виде, как от зачитывания свитка)
$item =~ s/^\s{2,}//; #отрубание в имени предмета ведущих пробелов
$item =~ s/\s{2,}$//; #отрубание пробелов к конце названия предмета
$item =~ s/\s\s/\s/g; #отрубание двойных пробелов в середине названия
$item =~ s/\s/\./g; #замена пробелов на точки, сделано потому что запакованое хранится с точками в названии, для доставания
#echo ("$item");

foreach my $item_exist (keys %packed_styff) #цикл по всем предметам хранящимся в сумке
{
$item_exist =~ s/^\s{2,}//; #-ведущие пробелы
$item_exist =~ s/\s{2,}$//; #-завершающие пробелы
$item_exist =~ s/\s\s/\s/g; #-двойные пробелы
$item_exist =~ s/\s/\./g; #замена пробелов на точки
if ($item eq $item_exist) {sendl("ска $who $item");} #если совпали имена из базы и из сумки то сообщить
};

};
};

} '^(\S+) (сказал|сказала|сказали) : \'Подбери мне (.*)\'', "1000fn:Info";;;;
Ladon вне форума   Ответить с цитированием