Цитата:
Сообщение от Devastator
есть более менее ) прошлагодняя база мобов ) поищи на форуме автостаб от Ладона. хорошая штука кстати ) для откачки
|
автостаб это прошлый век... теперь время интеллектуальных тригеров пришло... Ж)
Код:
my %autoarg = ();
my $autoagrfile = "auto.txt";
sub get_color($$) {
# Параметры: строка с цветами в формате внутренних цветов mmc
# и номер символа в ней.
# Возвращаемое значение: цвет этого символа в диапазоне A..P
return chr(ord(substr($_[0], 2*$_[1]+1, 1))+ord('A'));
}
trig {
if (get_color($;, 1) eq 'J') {
if (($tryDetectTarget == 0)) {
echo("tryDetectTarget $tryDetectTarget");
if (!defined($learnagr{$_})) {
$tryDetectTarget = 1;
echo("tryDetectTarget $tryDetectTarget");
$detectString = $tryString = $_;
$learnagr{$_} = $_;
tryAgr();
} else {
$detectString = $tryString = $_;
$safeagr = $learnagr{$_};
if ($U::autotrip) {
sendl("поднож $safeagr");
}
if ($U::autohide) {
sendl("спрят");
}
echo ("бьем по базе - закол $safeagr");
sendl ("закол $safeagr");
}
} else { #есть в базе
$safeagr = $learnagr{$_};
if ($U::autotrip) {
sendl("поднож $safeagr");
}
if ($U::autohide) {
sendl("спрят");
}
sendl ("закол $safeagr");
}
}
} '(.*)', '1000fn-:LearnAgr';
sub tryAgr () {
if ($tryDetectTarget == 1) {
if (length($tryString) == 0) {
echo("кончился tryString");
$tryDetectTarget = 0;
delete $learnagr{$detectString};
} else {
my @t = split(/[\,\s\-\.]/,$tryString);
my $safeagr = $t[0];
$safeagr =~ s/^(.*?).$/$1/;
$target = $safeagr;
echo("пробуем $safeagr");
sendl ("закол $safeagr");
$tryString = "";
for (my $i=1; $i<=$#t; $i++) {
$tryString .= $t[$i]." ";
}
echo ("осталось в tryString $tryString");
}
}
}
trig {
if ($tryDetectTarget == 1) {
echo("нето, надо еще раз попробовать");
tryAgr();
} else {
delete $learnagr{$detectString};
}
} '^Кого Вы так сильно ненавидите, что хотите заколоть \?', '1000fn-:LearnAgr';
trig {
if ($tryDetectTarget == 1) {
echo("заносим в базу \'$detectString\' - $target");
$learnagr{$detectString} = $target;
$tryDetectTarget = 0;
}
} '^(Вы мастерским ударом|Вы нанизали|Вам не удалось нанизать|Вы не смогли заколоть|.*просто передернуло от боли.|Вы воткнули)', '1000fn-:LearnAgr';
sub autoagrload {
%autoarg = ();
open (FILE,$autoagrfile);
echo ($autoargfile);
while (<FILE>) {
chomp;
my @f = split(/\|/);
$learnagr{$f[0]} = $f[1];
echo($_);
#echo ("pkl $f[0] $f[1] $_ $pklist{$_}");
}
close FILE;
}
sub autoagrsave {
open (FILE,">$autoagrfile");
foreach (keys %learnagr) {
print FILE "$_|$learnagr{$_}\n";
}
close FILE;
}
alias {
autoagrload();
} "агрзагрузить";
alias {
autoagrsave();
} "агрсохранить";
alias {
enable('LearnAgr');
autoagrload();
} "агрда";
alias {
disable('LearnAgr');
autoagrsave();
} "агрнет";