rwto.pl - идти в рандомную клеточку из области вокруг клетки

Дополнения к OpenKore, расширяющиее её функциональность, называются плагинами.

Модератор: 4epT

Murko
Начинающий
Сообщения: 15
Зарегистрирован: Вт апр 29, 2008 6:11 pm

rwto.pl - идти в рандомную клеточку из области вокруг клетки

Сообщение Murko »

Сори за тупое название темы.. Плагин, по комманде

Код: Выделить всё

 rwto x y r
бот переходит в случайную клеточку области вокруг точки (х, у)
r - радиус области
Хз насколько он нужен.. Но если что)
ЗЫ: код частично(почти полностью) украден из плагина rw

Код: Выделить всё

package rwto;
use strict;
use Globals;
use Field;
use AI;
use Log qw(message warning error debug);
use Translation;

Plugins::register('rwto', 'walks to a random point in radius 10', \&Unload);

my $chooks = Commands::register(
   ['rwto', "RW plugin", \&commandHandler]
);
sub commandHandler {
	my (undef, $args) = @_;
	my ($arg1, $arg2, $arg3) = $args =~ /^(\d+) (\d+).?(\d+)?$/;
	if ($arg1 eq "" || $arg2 eq "") {
		error T("Wrong syntax\n");
	}else{
		my ($randX, $randY);
		$arg3=($arg3 eq ""?$config{rwto_rad}:$arg3);
		AI::clear(qw/move route mapRoute/);
		my $i = 500;
		do {
			$randX = $arg1+int(rand($arg3)-$arg3/2);
			$randY = $arg2+int(rand($arg3)-$arg3/2);
			} while (--$i && !$field->isWalkable($randX, $randY));
		if ($i) {
			message TF("Walking to %i %i\n", $randX, $randY);
			ai_route($field{name}, $randX, $randY,
			maxRouteTime => $config{route_randomWalk_maxRouteTime},
			attackOnRoute => 2,
			noMapRoute => ($config{route_randomWalk} == 2 ? 1 : 0) );
		}
	}
}
sub Unload {
   Commands::unregister($chooks);
}
!Возможно у меня кривой regexp в получении аргументов(но работает)
Последний раз редактировалось Murko Вс май 18, 2008 3:40 am, всего редактировалось 3 раза.
Аватара пользователя
Jerry
Профессионал
Сообщения: 1047
Зарегистрирован: Сб ноя 04, 2006 12:26 pm
Контактная информация:

Сообщение Jerry »

нормальные пацаны делают rwto x y r где r опционально
Murko
Начинающий
Сообщения: 15
Зарегистрирован: Вт апр 29, 2008 6:11 pm

Сообщение Murko »

готово
Аватара пользователя
Jerry
Профессионал
Сообщения: 1047
Зарегистрирован: Сб ноя 04, 2006 12:26 pm
Контактная информация:

Сообщение Jerry »

опционально - это значит можно указывать, а можно и не указывать. Если не указать - берется по умолчанию / из конфига :)
Murko
Начинающий
Сообщения: 15
Зарегистрирован: Вт апр 29, 2008 6:11 pm

Сообщение Murko »

Сделано
nur
Начинающий
Сообщения: 42
Зарегистрирован: Чт ноя 20, 2008 1:34 pm
Сервер RO:: rro

Re: Плагин пойти в рандомную клеточку из области вокруг клетки

Сообщение nur »

спасибо. пригадился
Ответить