стоим на одной клетке с игроком

Официальный сервер Ragnarok On-Line в России - https://ru.4game.com/ro/install/

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

Правила форума
ВНИМАНИЕ: реклама сторонних ботов запрещена! Всякие плюшки - можно :)
Аватара пользователя
4epT
macro-маньячина
Сообщения: 2792
Зарегистрирован: Чт дек 21, 2006 1:23 pm
Сервер RO:: 4game
Discord: ya4ept#8494
Контактная информация:

стоим на одной клетке с игроком

Сообщение 4epT »

забавно, раньше бот это умел делать, тепеть сервак его смещает рандомно на другую клетку :twisted:

ЗЫ: или на раге так всегда и было??
Быстро и качественно напишу конфиг (макрос)! Стучи!
¤ Свежий бот ¤ Config checker ¤ Manual ¤
Изображение
Изображение
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

(Ты точно уверен, что это юмор?)
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Аватара пользователя
4epT
macro-маньячина
Сообщения: 2792
Зарегистрирован: Чт дек 21, 2006 1:23 pm
Сервер RO:: 4game
Discord: ya4ept#8494
Контактная информация:

Сообщение 4epT »

(нет) :oops:
Быстро и качественно напишу конфиг (макрос)! Стучи!
¤ Свежий бот ¤ Config checker ¤ Manual ¤
Изображение
Изображение
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

(перенесено в раздел оф-сервер)
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Faramund34
Начинающий
Сообщения: 36
Зарегистрирован: Вт апр 15, 2008 10:25 am

Сообщение Faramund34 »

Кстати это можно как то исправить? Например бот идет на автосторадж дистанц допустим стоит 10, он становиться - она занята, его кидает на другую, допустим на дистанц 11 (то бишь на 1 клетку четко вниз) он снова пытается стать на дистанц 10. И так может повторяться несколько раз. Итог - сразу видно что это бот. Как то можно исправить? Если через запятую прописать

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

distance 9, 10, 11
кора поймет? И не начнет ли ее глючить еще сильнее? Прошу не удалять этот пост... Это действительно стало проблемой.
А ты был сегодня в БАНЛИСТЕ???
Аватара пользователя
Click
Разработчик
Сообщения: 1564
Зарегистрирован: Сб ноя 04, 2006 11:30 pm
Сервер RO:: clickro.sytes.net
Откуда: Великий Новгород
Контактная информация:

Сообщение Click »

я придумал) нужно в проверку на "волкабле" добавить не стоит ли в этой клетке игрок)

Добавлено спустя 18 минут 30 секунд:

в misc.pm
sub checkLineWalkable {
Faramund34
Начинающий
Сообщения: 36
Зарегистрирован: Вт апр 15, 2008 10:25 am

Сообщение Faramund34 »

Click
Это слишком сложно для меня. Я только только более менее освоил макросы. В код даже не совался((( Нашел, конечно, в misc.pm эту строчку там оказалось вот что:

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

sub checkLineWalkable {
	return 0 if (!$field);
	my $from = shift;
	my $to = shift;
	my $min_obstacle_size = shift;
	$min_obstacle_size = 5 if (!defined $min_obstacle_size);

	my $dist = round(distance($from, $to));
	my %vec;

	getVector(\%vec, $to, $from);
	# Simulate walking from $from to $to
	for (my $i = 1; $i < $dist; $i++) {
		my %p;
		moveAlongVector(\%p, $from, \%vec, $i);
		$p{x} = int $p{x};
		$p{y} = int $p{y};

		if ( !$field->isWalkable($p{x}, $p{y}) ) {
			# The current spot is not walkable. Check whether
			# this the obstacle is small enough.
			if (checkWallLength(\%p, -1,  0, $min_obstacle_size) || checkWallLength(\%p,  1, 0, $min_obstacle_size)
			 || checkWallLength(\%p,  0, -1, $min_obstacle_size) || checkWallLength(\%p,  0, 1, $min_obstacle_size)
			 || checkWallLength(\%p, -1, -1, $min_obstacle_size) || checkWallLength(\%p,  1, 1, $min_obstacle_size)
			 || checkWallLength(\%p,  1, -1, $min_obstacle_size) || checkWallLength(\%p, -1, 1, $min_obstacle_size)) {
				return 0;
			}
		}
	}
	return 1;
}
но это для меня ппц(( я не понимаю что на что нужно поменять. Подскажи пожалуйста...
А ты был сегодня в БАНЛИСТЕ???
Аватара пользователя
Click
Разработчик
Сообщения: 1564
Зарегистрирован: Сб ноя 04, 2006 11:30 pm
Сервер RO:: clickro.sytes.net
Откуда: Великий Новгород
Контактная информация:

Сообщение Click »

попробуй затести

было:

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

sub closestWalkableSpot {
	my $field = shift;
	my $pos = shift;

	foreach my $z ( [0,0], [0,1],[1,0],[0,-1],[-1,0], [-1,1],[1,1],[1,-1],[-1,-1],[0,2],[2,0],[0,-2],[-2,0] ) {
		next if !$field->isWalkable($pos->{x} + $z->[0], $pos->{y} + $z->[1]);
		$pos->{x} += $z->[0];
		$pos->{y} += $z->[1];
		return 1;
	}
	return 0;
}
стало:

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

sub closestWalkableSpot {
	my $field = shift;
	my $pos = shift;

		if ($playersList) {
			foreach my $player (@{$playersList->getItems()}) {
				foreach my $z ( [0,0], [0,1],[1,0],[0,-1],[-1,0], [-1,1],[1,1],[1,-1],[-1,-1],[0,2],[2,0],[0,-2],[-2,0] ) {
					next if ((!$field->isWalkable($pos->{x} + $z->[0], $pos->{y} + $z->[1])) || (($pos->{x} eq $player->{pos_to}{x}) && ($pos->{y} eq $player->{pos_to}{y})));
					$pos->{x} += $z->[0];
					$pos->{y} += $z->[1];
					return 1;
				}
			}
		}
				return 0;
}
Faramund34
Начинающий
Сообщения: 36
Зарегистрирован: Вт апр 15, 2008 10:25 am

Сообщение Faramund34 »

Затестил. Что должно было измениться? я ради прикола поставил своих персов вот так

+++
+++
+++

с условием что мой бот должен был стать на центральный плюс. тупилово было минуту примерно (как описано выше). Хотя заменил все правильно. Может тебе какие нибудь логи скинуть? Откуда нить...

З.Ы. да что такое блин: когда набираешь отображается одно, а в посте выглядит иначе... 5 раз менял
А ты был сегодня в БАНЛИСТЕ???
dimmka
Энтузиаст
Сообщения: 87
Зарегистрирован: Вс ноя 19, 2006 12:40 pm

Сообщение dimmka »

Click
а это сработает если например бот затариваетсо у нпсюка, а кора командует встать на рандомное место, на которой например стена (если нпсюк в маленькой каморке возле стены а вокруг него еще столы и прочая утварь).
Чтоб бот, поняв наконец, что туда стать нельзя, выбрал другую точку а не стремился встать в мертвую точку до посинения :twisted: ?
Аватара пользователя
Click
Разработчик
Сообщения: 1564
Зарегистрирован: Сб ноя 04, 2006 11:30 pm
Сервер RO:: clickro.sytes.net
Откуда: Великий Новгород
Контактная информация:

Сообщение Click »

упилово было минуту примерно (как описано выше)
:lol: :oops: и смех и грех
а это сработает если например бот затариваетсо у нпсюка
нет, я там добавил проверку на игрока, но видимо не туда.
Ответить