Страница 4 из 6
Добавлено: Пн янв 15, 2007 3:00 pm
DInvalid
piroJOKE писал(а):DInvalid
По ходу, не исправлено. Хм... черт, если кто-то разберется, как туда воткнуть таймаут(!), чтобы он не сразу начинал движение, думаю, это будет как раз решением проблемы.
ЗЫ: Скоро обновим нашу сборку - SVNку, посмотрим что там мыши с АИ понаделывали. )
Я сейчас сижу над этим, включил постянный вывод состояния АИ, и пока что вижу такие вещи.
1) Метания обусловленны 2 факторами -
- Первый это то что при атаке мы идем к месту откуда моб начал движение, и если он идет к нам, то получаются "гонки" - мы приходим на то место где он был, а он уже там где мы были, и так далее.
Как решить - при атаке идти не в то место откуда моб move а в то куда он move ил хотя бы в середину между этими точками.
Где исправлять - в Attack.pm ?
- Второй - метания при атаке кучки мобов/поднятии лута, выражающиеся втом что после убийства моба мы не принимамся за следющего стоящего рядом, а сначала идем на ту точку route в которой прервался маршрут, потом вспоминаем что надо добить мобов, и идем назад.
Как решить - ставить задержку на срабатывание processRouteAI() ?
судя по логам, присходит следующее: после того как моб убит, срабатывает processRouteAI(), потом processMove(); что видно по идущим подряд сообщениям
Route - trimming ....
Route - next step ...
Sending move from ...
Я сделал так... возможно это приведет к глюкам и другим проблемам
поэтому кто смелый и может посмотерть как бот ведет себя с таким исправлением в разных ситуациях под хKore - you are welcome!
файл CoreLogic
sub Iteratre
....
AI::Attack::process();
### EDITED
processAutoAttack() if ($AI == 2);
### EDITED
Benchmark::end("AI (part 1.2)") if DEBUG;
....
Вот, если кто попробует и напишет о результатах - было бы здорово.
Добавлено: Пн янв 15, 2007 3:03 pm
piroJOKE
DInvalid писал(а):Я сделал так... возможно это приведет к (....)
Э... чо-то в смысл не вьехал...
DInvalid писал(а):Как решить - при атаке идти не в то место откуда моб move а в то куда он move ил хотя бы в середину между этими точками.
Именно в точку назначения, именно! Мы это уже когда-то обсуждали, но тема заглохла. Клиент, кстати, именно в точку назначения и идёть.
ЗЫ: Кстати, follow это тоже касается.
Добавлено: Пн янв 15, 2007 3:10 pm
DInvalid
piroJOKE писал(а):DInvalid писал(а):Как решить - при атаке идти не в то место откуда моб move а в то куда он move ил хотя бы в середину между этими точками.
Именно в точку назначения, именно! Мы это уже когда-то обсуждали, но тема заглохла. Клиент, кстати, именно в точку назначения и идёть.
DInvalid писал(а):Я сделал так... возможно это приведет к (....)
Э... чо-то в смысл не вьехал...
По 1 му вопросу - не смог найти темку, где это обсуждалось, дай линк пожалуйста, и к чему там вообще пришли к каком уто решению?
По 2 ому - это штука делает вот что... срау после обработки атаки и до обработки следования по маршруту выполнить проверку на наличие мобов для атаки и если они есть АИ будет в сосоянии не
AI : route а AI: attack route когда дойдет до processRouteAI и таким образом сначала убьет всех мобов вблизи от себя а потом будет дергаццо...
*Сорри что сумбурно объясняю*
Добавлено: Пн янв 15, 2007 4:06 pm
kLabMouse
piroJOKE
С АИ мыши ничего не делали. Только немного концепт ВЦЛ подправил.
Про Рефакторинг дя. Он идёт, только вот одно убивает что есть дубли функций, пока.
Добавлено: Пн янв 15, 2007 5:23 pm
piroJOKE
DInvalid писал(а):По 1 му вопросу - не смог найти темку, где это обсуждалось, дай линк пожалуйста, и к чему там вообще пришли к каком уто решению?
Сходу не найду, надо листать "вопросы". Там помниццо даже картинки были иллюстрации.
Добавлено: Вт янв 16, 2007 8:11 am
maxsus
мну такая же проблем......
Вариат такой.... при атаке моба двигатся в ту точку с которой он тя атаковал...и с интервалом 0.3 - 0.5 секунды направлять на него атаку..
РS - не знаю устройства коры и пакетов....но впринципе должна действовать....сильно не ругать
Добавлено: Вт янв 16, 2007 12:57 pm
maxsus
Седня два часа бегал за ботом
Атак дистанце не всегда помогает О.О
1 из 4 атак не тупит.....не магу выивять закономерности тупизма=)
Бла вроде основная задача бота бить и убевать, блин а из него тонсора зделали......паливо ппц какое......
Такой тупизм не тока палево наводить, но и сокращает время жизни бота....=(
Добавлено: Вт янв 16, 2007 1:02 pm
piroJOKE
maxsus
Успокойся! И прочти тему сначала прежде чем писать всякую херню, плз.
Добавлено: Вт янв 16, 2007 1:02 pm
maxsus
Получается вроде, Кора запоминает координаты моба когда тот появляется в зоне атаки, бот после убийства предидущей жертвы переключается на следующюю, но по старым координатам
Добавлено: Вт янв 16, 2007 1:03 pm
piroJOKE
БЛЯ! maxsus, хватит флудить, ты за%бал уже.
Добавлено: Вт янв 16, 2007 1:09 pm
japplegame
Люди, не парьте мозг себе и другим. Бот уже давно идет туда куда моб ПРИДЕТ, а не туда где он находится в текущий момент. Определяются эти координаты по пакету move, который шлет сервер, когда мобы или другие персонажи двигаются.
И как раз именно из-за этого возникают непонятки с агрессивными монстрами.
Например, игрок стоит в точке A, а моб в точке B. Затем моб начинает двигаться к точке C, персонаж идет туда же. В это время моб дошел до С раньше игрока и поворачивает ему на встречу в точку D. Игрок в это время доходит до С, видит, что моб пошел в D и идет к D. Обычно на этом дело и заканчивается, но частенько одного такого цикла мало и моб с игроком могут долго плясать.
Самый верный вариант, это обнаружить, что моб находится в прямой досягаемости игрока и один раз послать пакет атаки. Далее сервер будет уже сам вести персонажа за мобом, как и происходит в реальном клиенте. Но в таком решении есть свои подводные камни, которые тоже надо обходить.
Добавлено: Пт янв 19, 2007 11:41 am
DInvalid
japplegame писал(а):Люди, не парьте мозг себе и другим. Бот уже давно идет туда куда моб ПРИДЕТ, а не туда где он находится в текущий момент. Определяются эти координаты по пакету move, который шлет сервер, когда мобы или другие персонажи двигаются.
И как раз именно из-за этого возникают непонятки с агрессивными монстрами.
Ок, это пункт первый о котором я как раз и писал, это "пляски" вокруг моба.
Есть еще 2ой пункт, когда бот стоя в куче мобов, после каждой атаки отбегает на точку откуда он свернул с маршрута к мобам, и только потом идет обратно атаковать, и так для каждого моба.
Со сотороны выглядит очень заметно
Если я павильно понимаю, эта фича АИ появилась после разделения ai auto и ai manual в 1.9.3, и связана с тем что processRouteAI и processMove стоят сразу после обработки атаки, а processAutoAttack - значительно позже них.
Добавлено: Пт янв 19, 2007 4:43 pm
Xmpe
Есть еще 2ой пункт, когда бот стоя в куче мобов, после каждой атаки отбегает на точку откуда он свернул с маршрута к мобам, и только потом идет обратно атаковать, и так для каждого моба.
Это более менее решено макросом, из куч не выбегает
Добавлено: Пт янв 19, 2007 8:02 pm
DInvalid
Xmpe писал(а):Есть еще 2ой пункт, когда бот стоя в куче мобов, после каждой атаки отбегает на точку откуда он свернул с маршрута к мобам, и только потом идет обратно атаковать, и так для каждого моба.
Это более менее решено макросом, из куч не выбегает
Макрос ужасен, и все такие это не решение, а воркараунд так сказать.
П.С. У тебя какая версия бота? Еще со старой системой АИ или с новой?
Добавлено: Пт янв 19, 2007 8:33 pm
Xmpe
со старой было, с новой уже не тестил