если кто шарит в програмировании, гляньте возможно ли сделать такое:
А---------С----------В
Бот у нас передвигается отрезками АВ (обычно 10-15 шагов),
допустим бот идет из точки А в точку В, в точке С на него нападает агресив, бот дергается в судорагах но доходит таки до точки В и тока потом врубает интеллект на атаку, что не есть гуд, палевно, неэффетивно, а зачастую и гибельно.
у нас в AI есть блок реагирующий на атаку моба? как сделать данный блок доминантным? то есть если бота ударили во время процедуры route, то идет проверка - дожны ли мы атаковать моба ( сверяемся с монконтрол), если да - то отменяем действие route и начинаем атаковать агра.
При игре без ОК мы кликая допустим на край экрана чтобы туда дойти - туда и идем но если ударил моб то перс приняв удар замирает и ждет указаний- идти или атаковать. Почему же Кора с упорством Александра Матросова пытается пробиться к точке В ( пусть даже на ней 10 мобов повиснут, ей на это пофигу).
кора версии 206SVN6260. вроде такого не было раньше, у нас поменялся AI?
ЗЫ это не к теме "выбигание из толпы", это совсем другая проблема, хотя решив ее можно частично решить и "выбегание".
Добавлено спустя 20 минут 29 секунд:
вобчем частично решил по своему-
1-ое использовал идею с этого форума(не помню когда и в какой теме ее написал один товарищ, спасибки ему), цитирую:
"Что и где надо изменить
(речь идет об OpenKore what-will-become-2.0.4 (SVN version), про другие ничего сказать не могу к сожалению)
1) открываем src/AI/Attack.pm
Находим там функцию sub finishAttacking { и в самом конце ее дописываем строчку Код:
$timeout{'ai_attack_auto'}{'time'} -= $timeout{'ai_attack_auto'}{'timeout'} + 1;
Итого концовка будет выглядеть след. образом: Код:
} else {
message T("Target lost\n"), "ai_attack";
}
$timeout{'ai_attack_auto'}{'time'} -= $timeout{'ai_attack_auto'}{'timeout'} + 1;
}
Этим самым мы сбросим таймаут для функции processAutoAttack, чтобы он сработала пре следующем же ее вызове.
2) Теперь нужно добиться, чтобы processAutoAttack в общем цикле была вызвана как можно раньше, чтобы бот "не успел озадачиться" чем-то другим, типа передвижения ...
Для этого открываем src/AI/CoreLogic.pm и вносим следующие изменения:
а) находим строчку processLook(); и перед ней вставляем следующий код: Код:
if ($AI == 2) {
processAutoAttack();
}
б) теперь мотаем ниже и находим старый вызов этой же функции processAutoAttack(); и просто комментируем его или удаляем.
"
2-ое поставил в конфиге:
doCommand move stop {
onAction route
notOnAction attack
aggressives > 0
timeout 1
disabled 0
}
бот стал более адекватен, не идеален конечно но уже чтото. Потестите если кому не в лом.
Реакция бота на атаку моба - проблема!
Модератор: 4epT
Правила форума
Все вопросы по OK не касающиеся плагинов и макросов публикуются в этом разделе.
Перед тем как что то писать, пожалуйста, удостоверьтесь что данная тема не поднималась, вы полностью изучили мануалы по конфигурационным файлам бота и не нашли там решения.
Все вопросы по OK не касающиеся плагинов и макросов публикуются в этом разделе.
Перед тем как что то писать, пожалуйста, удостоверьтесь что данная тема не поднималась, вы полностью изучили мануалы по конфигурационным файлам бота и не нашли там решения.
"Бот у нас передвигается отрезками АВ (обычно 10-15 шагов)"
Я конечно не програмист, но как любитель хотел задать вопрос, в том числе и автору данного подраздела, а есть возможность (необходимость, целесообразность) сократить размер отрезка АВ, скажем, до 3(или скоко там возможно, или нужно) шагов, и насколько это целесообразно, и как это осуществить.
В идеале, я так понимаю. отрезок между А и В должен быть равен двум шагам, чтобы вопрос о точке С опал сам собой.
Я конечно не програмист, но как любитель хотел задать вопрос, в том числе и автору данного подраздела, а есть возможность (необходимость, целесообразность) сократить размер отрезка АВ, скажем, до 3(или скоко там возможно, или нужно) шагов, и насколько это целесообразно, и как это осуществить.
В идеале, я так понимаю. отрезок между А и В должен быть равен двум шагам, чтобы вопрос о точке С опал сам собой.
гадко тогда он движеться бррр меньше 8 ставить route_step ужасно выглядят передвижения, дерганно , в свое время уменьшал и до 2 лучше не делайте - палево голимое визуально. там же как- двинулся он на длину этого параметра и завис расчитывая след точку и так далее, так что сокращать не стоит слишком.А автор пробовал этот параметр уменьшить до 5?
А если задействовать autoConfChange, т.е менять конфиг на конфиг_2. При этом прописать условие для перемены конфига: а именно, растояние до интересующего нас моснтра, т.е. если растояние до монтсра который появился в пределах видимости составляет например уже 9 клеток, то менять конфиг в котором route_step = 2 или еще чему то отличному (меньше) от того же значения указанному в первом конфиге. Ну а во втором конфиге прописать обратное условие для задействования 1 конфига. Немного коряво написал, но общее направление мысли думаю понятно.
Интересно в этом случае можно обойтись без макроса (ну не люблю я их).
Интересно в этом случае можно обойтись без макроса (ну не люблю я их).