Пьяная походка - Drunked walking / вычисление точки встречи

Разработка новых функций.

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

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

Пьяная походка - Drunked walking / вычисление точки встречи

Сообщение Click »

Route.pm
$self->{new_x} = $self->{solution}[$self->{index}]{x};
$self->{new_y} = $self->{solution}[$self->{index}]{y};

###############################################################
# Drinked walking
# by Click and kLabMouse
###############################################################
# Config options:
# # Enable drinked randowm walking
# route_randomWalk_drinked 1
# # How much beers bot allready drinked
# route_randomWalk_how_much_drinked 3
###############################################################
if (($config{route_randomWalk_drinked})&&($stepsleft > 2)&&(!AI::inQueue("ai_follow","ai_partyfollow","ai_items_take","ai_skillUse","ai_skillUse2","attack","gather","sit","stand","take"))) {
my $pjanostj = $config{route_randomWalk_how_much_drinked};
my @rectBlock = calcRectArea2($self->{new_x}, $self->{new_y}, $pjanostj, 0);
my $blockCount = scalar(@rectBlock);
my $loopCount = 0;
my $new_pos;
do {
$new_pos = $rectBlock[int(rand($blockCount))];
$loopCount++;
} while ((!$field->isWalkable($new_pos->{x}, $new_pos->{y})
|| !checkLineWalkable($pos, $new_pos))
&& ($blockCount > $loopCount));

$self->{new_x} = $new_pos->{x};
$self->{new_y} = $new_pos->{y};
}
###############################################################
# Drinked walking end
###############################################################

# But first, check whether the distance of the next point isn't abnormally large.
# If it is, then we've moved to an unexpected place. This could be caused by auto-attack,
# for example.
my %nextPos = (x => $self->{new_x}, y => $self->{new_y});
Эти строчки добавить в конфиг:
route_randomWalk_drinked 1
route_randomWalk_how_much_drinked 3
рекомендуемые значения route_randomWalk_how_much_drinked 2 или 3

PS: В идеале "$stepsleft > 1", но сильно увеличивается пляска вокруг моба, поэтому рекомендую 2 или 3.

PPS: Можно конечно попробовать "$stepsleft > 1" заменить на условие "если в аи нет атаки"
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Клик, я это пожалуй все-таки в "идеи" засуну.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
lirikpl
Грамотный
Сообщения: 476
Зарегистрирован: Вс ноя 12, 2006 12:58 am

Сообщение lirikpl »

говорим спасибо:мыше,клику оба приложили достаточно усилий и бессоных ночей.
остается только атаку исправить..самое сложное блин))))
и тогда фига ботика отличишь так просто :twisted:
а на данный момент, блудят все как человеки,а ханты еще и атакуют на дистанции,получаем человекоподбного ханта))))
Exeller
Энтузиаст
Сообщения: 88
Зарегистрирован: Вт апр 10, 2007 2:00 pm

Сообщение Exeller »

Куды это дело сувать то.....расширение у него "pm" а не "pl" .
Изображение
lirikpl
Грамотный
Сообщения: 476
Зарегистрирован: Вс ноя 12, 2006 12:58 am

Сообщение lirikpl »

там написано Route.pm
Exeller
Энтузиаст
Сообщения: 88
Зарегистрирован: Вт апр 10, 2007 2:00 pm

Сообщение Exeller »

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

Сообщение Click »

ищем в том файле строчки
$self->{new_x} = $self->{solution}[$self->{index}]{x};
$self->{new_y} = $self->{solution}[$self->{index}]{y};

После них вписывает код патча
###############################################################
# Drinked walking
# by Click and kLabMouse
###############################################################
# Config options:
# # Enable drinked randowm walking
# route_randomWalk_drinked 1
# # How much beers bot allready drinked
# route_randomWalk_how_much_drinked 3
###############################################################
if (($config{route_randomWalk_drinked})&&($stepsleft > 2)&&(!AI::inQueue("ai_follow","ai_partyfollow","ai_items_take","ai_skillUse","ai_
.....
.....
###############################################################
# Drinked walking end
###############################################################

А дальше опять продолжается тело файла
# But first, check whether the distance of the next point isn't abnormally large.
# If it is, then we've moved to an unexpected place. This could be caused by auto-attack,
# for example.
my %nextPos = (x => $self->{new_x}, y => $self->{new_y});


Ну да я конечно согласен, что нужно сильно подумать, чтоб разобраться как это вставить, темболее если расширение не pl
Аватара пользователя
kLabMouse
Профессионал
Сообщения: 4776
Зарегистрирован: Вс ноя 05, 2006 4:32 pm

Сообщение kLabMouse »

киирр
ГГг. На щёт атаки моба. В процесе. Правда я сильно подзабыл геометрию, поетому очень сложно реализовать всё. Но думаю найдутся умельцы которые помогут.

В общем: Задача очень проста на первый взгляд: Есть тогка где щас моб, есть точка куда движется моб, есть его скорость. Есть точка где стоим мы, есть наша скорость движения. Найти точку сопрекосновения с прямой движения моба.
В общем, всё бы было просто. Но я паока только нарыл как найти синус угла движения к мобу, но как найти точку соприкосновения пока не понял.


Поетому, кто может. Добро пожаловать.
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

КМ, я немного с Кликом побеседовал на эту тему, имхо что-то вы загибаете опять не то.
Предположим, моб агрессивный. Разве он не изменит свою траекторию движения, покуда ты к нему будешь подходить? :(
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Аватара пользователя
kLabMouse
Профессионал
Сообщения: 4776
Зарегистрирован: Вс ноя 05, 2006 4:32 pm

Сообщение kLabMouse »

piroJOKE
В общем Да, но и с етом можно совладать
Аватара пользователя
miniBot
Грамотный
Сообщения: 429
Зарегистрирован: Вс ноя 05, 2006 8:48 am
Откуда: Москва
Контактная информация:

Сообщение miniBot »

piroJOKE писал(а):Предположим, моб агрессивный. Разве он не изменит свою траекторию движения, покуда ты к нему будешь подходить?
kLabMouse писал(а):В общем Да, но и с етом можно совладать
С этим совладать нужно сначала, потомучто плясок больше именно с агрессорами
помощь только тем у кого включен параметр - mozgEnable 1

БОТАТЬ, БОТАТЬ, И ЕЩЕ РАЗ БОТАТЬ, КАК ЗАВЕЩАЛ ВЕЛИКИЙ ЛЕНИН
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Это самое... "пляски" у нас ваще где-то в другой теме, уже были. И под сабж они не сильно-то и подходят. :)

По сабжу... походка не понравилось. Прикольно конечно, но не то, что хотелось бы. Ну мож для суппорта оно и неплохо, а для одиночки... выглядит странно.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
lirikpl
Грамотный
Сообщения: 476
Зарегистрирован: Вс ноя 12, 2006 12:58 am

Сообщение lirikpl »

а какие пляски то??стандартный бот атакует просто повторяя движения моба,то есть топая по его стопам,если он переместился естественно,с теми кто на месте все шоколадно.,а выскакиваний из толпы как раньше больше нет,вот надо избежать этого преследования моба и как ггрил мышь,найти точку соприкосновения атаки.
ps походка отличная,уж не как стандартный ботяра по рельсам в депо следует
Аватара пользователя
kLabMouse
Профессионал
Сообщения: 4776
Зарегистрирован: Вс ноя 05, 2006 4:32 pm

Сообщение kLabMouse »

киирр писал(а):походка отличная,уж не как стандартный ботяра по рельсам в депо следует
Вот именно того, чтоб не топал как рельсам мы и добивались.

Правда данное решение всего лищь концептуальное, реально нужно прощитывать вектор движения, построить нормаль через те токи, сместить её на несколько клеток, и только так добёмся болие, или мение реального поведения более напоминающее обычных пользователей. Решение уже такого рода задачь, очень и очень трудоёмкое.

Хотя в движения пяного водителя оно очень даже хорошо вписалось, главное не давать ему пить много пива, иначе будет выглядеть как-бы пользователь вообще не знает куда собрался идти.
lirikpl
Грамотный
Сообщения: 476
Зарегистрирован: Вс ноя 12, 2006 12:58 am

Сообщение lirikpl »

kLabMouse писал(а):главное не давать ему пить много пива, иначе будет выглядеть как-бы пользователь вообще не знает куда собрался идти.
гг на 4+ он начинает иногда обратно идти,смешно в городе особенно,типо идет идет,аа нее пойду обратно,не лучше туда.. Ик аа. где же ларек то?
1-3 оптимально,в общем
видел бы ты те первые идейные версии...после которых он не хотел по нормальной траектории ходить,то есть ходьба замыкалась и он по небольшому кругу ходил,соответственно не лута ни фига,ток вайпоинтами типо стэп сэпэктора можно было выпрямить :o брр
Ответить