Показать сообщение отдельно
Старый 19.01.2008, 02:22   #7
Ladon
Отличник форума
 
Регистрация: 06.03.2004
Сообщений: 505
По умолчанию

Цитата:
Сообщение от 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();
	} "агрнет";
Ladon вне форума   Ответить с цитированием