Я сейчас сижу над этим, включил постянный вывод состояния АИ, и пока что вижу такие вещи.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;
....
Вот, если кто попробует и напишет о результатах - было бы здорово.