стоим на одной клетке с игроком
Модератор: 4epT
Правила форума
ВНИМАНИЕ: реклама сторонних ботов запрещена! Всякие плюшки - можно
ВНИМАНИЕ: реклама сторонних ботов запрещена! Всякие плюшки - можно
- 4epT
- macro-маньячина
- Сообщения: 2792
- Зарегистрирован: Чт дек 21, 2006 1:23 pm
- Сервер RO:: 4game
- Discord: ya4ept#8494
- Контактная информация:
стоим на одной клетке с игроком
забавно, раньше бот это умел делать, тепеть сервак его смещает рандомно на другую клетку
ЗЫ: или на раге так всегда и было??
ЗЫ: или на раге так всегда и было??
-
- Начинающий
- Сообщения: 36
- Зарегистрирован: Вт апр 15, 2008 10:25 am
Кстати это можно как то исправить? Например бот идет на автосторадж дистанц допустим стоит 10, он становиться - она занята, его кидает на другую, допустим на дистанц 11 (то бишь на 1 клетку четко вниз) он снова пытается стать на дистанц 10. И так может повторяться несколько раз. Итог - сразу видно что это бот. Как то можно исправить? Если через запятую прописать
кора поймет? И не начнет ли ее глючить еще сильнее? Прошу не удалять этот пост... Это действительно стало проблемой.
Код: Выделить всё
distance 9, 10, 11
А ты был сегодня в БАНЛИСТЕ???
-
- Начинающий
- Сообщения: 36
- Зарегистрирован: Вт апр 15, 2008 10:25 am
Click
Это слишком сложно для меня. Я только только более менее освоил макросы. В код даже не совался((( Нашел, конечно, в misc.pm эту строчку там оказалось вот что:
но это для меня ппц(( я не понимаю что на что нужно поменять. Подскажи пожалуйста...
Это слишком сложно для меня. Я только только более менее освоил макросы. В код даже не совался((( Нашел, конечно, в 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
- Откуда: Великий Новгород
- Контактная информация:
попробуй затести
было:
стало:
было:
Код: Выделить всё
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;
}
-
- Начинающий
- Сообщения: 36
- Зарегистрирован: Вт апр 15, 2008 10:25 am
Затестил. Что должно было измениться? я ради прикола поставил своих персов вот так
+++
+++
+++
с условием что мой бот должен был стать на центральный плюс. тупилово было минуту примерно (как описано выше). Хотя заменил все правильно. Может тебе какие нибудь логи скинуть? Откуда нить...
З.Ы. да что такое блин: когда набираешь отображается одно, а в посте выглядит иначе... 5 раз менял
+++
+++
+++
с условием что мой бот должен был стать на центральный плюс. тупилово было минуту примерно (как описано выше). Хотя заменил все правильно. Может тебе какие нибудь логи скинуть? Откуда нить...
З.Ы. да что такое блин: когда набираешь отображается одно, а в посте выглядит иначе... 5 раз менял
А ты был сегодня в БАНЛИСТЕ???
Click
а это сработает если например бот затариваетсо у нпсюка, а кора командует встать на рандомное место, на которой например стена (если нпсюк в маленькой каморке возле стены а вокруг него еще столы и прочая утварь).
Чтоб бот, поняв наконец, что туда стать нельзя, выбрал другую точку а не стремился встать в мертвую точку до посинения ?
а это сработает если например бот затариваетсо у нпсюка, а кора командует встать на рандомное место, на которой например стена (если нпсюк в маленькой каморке возле стены а вокруг него еще столы и прочая утварь).
Чтоб бот, поняв наконец, что туда стать нельзя, выбрал другую точку а не стремился встать в мертвую точку до посинения ?