Бот - собиратель лута. Как настроить?

Общие вопросы по OpenKore обсуждаются здесь. Можно сказать, что это - основной раздел форума.
Возник вопрос? Вам сюда.

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

Правила форума
Все вопросы по OK не касающиеся плагинов и макросов публикуются в этом разделе.
Перед тем как что то писать, пожалуйста, удостоверьтесь что данная тема не поднималась, вы полностью изучили мануалы по конфигурационным файлам бота и не нашли там решения.
bird_flu
Начинающий
Сообщения: 34
Зарегистрирован: Пт ноя 17, 2006 8:05 am

Бот - собиратель лута. Как настроить?

Сообщение bird_flu »

Вообщем задача настроить бота, который тупо ходит по локе и собирает лут. Попытки реализовать это с помощью стандартного конфига, просто запретив атаку не увеньчались успехом - бот проходит мимо лута. Конечно он поднимает кое-что но я честно говоря с трудом представляю его логику в выборе лутин которые надо поднять, а которые пройти мимо. В итоге поднято примерно 10%, а то и меньше от всего что валялось на пути.
У меня етсь только одна версия почему так происходит - с момента появления лутины в поле зрения к моменту когда бот приблизился к ней проходит время превышающее некий параметр в timeouts.txt. Возможно вот этот ai_take_giveup 3, но я честно говоря очень сомневаюсь в верности этой версии.

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

Сообщение kLabMouse »

bird_flu
А ты попробуй поменять интервалы ожидания и попыток поднятия лута.
bird_flu
Начинающий
Сообщения: 34
Зарегистрирован: Пт ноя 17, 2006 8:05 am

Сообщение bird_flu »

ai_items_take_start 0.4
ai_items_take_end 1.2

ai_take .4
ai_take_giveup 8
ai_items_gather_giveup 8
ai_items_gather_auto .3
ai_items_gather_start .3

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

Сообщение kLabMouse »

bird_flu

А ты прочитай о них.
bird_flu
Начинающий
Сообщения: 34
Зарегистрирован: Пт ноя 17, 2006 8:05 am

Сообщение bird_flu »

Ну вот смотри, если верить темке в факе, то вот эти пункты:
ai_items_take_start
ai_items_take_end

не должны нас интересовать, потому что они срабатывают только после убийства моба, так?

ai_take это и есть интервал попыток поднятия, 0.4 это как я понимаю почти пол секунды.. вообщем не понимаю смысл в уменьшении этого параметра, а увеличивать.. помоему еще более бессмысленно.

ai_take_giveup возможно дело в этом. Но я не знаю когда в боте срабатывает попытка поднятия. Если в момент когда лут появился в поле его зрения, тогда ему нужно время что бы дойти до лутины, а если вокруг него много лутин то по идее надо установить такой интервал когорого хватит на поднятие всех лутин в радиусе действия.
Я правильно понимаю что для каждой лутины появившейся в радиусе видимости бот в момент ее появления включает этот таймер? Или он его включает по очереди на каждую лутину в момент когда он ей заинтересовался?

ai_items_gather_giveup я не нашел нигде пояснения что это за параметр, но предполагаю что возможно, если предыдущий таймер работает по варианту на каждую лутину по очереди, то этот срабатывает на лут по мере его появления в поле зрения, так?

ai_items_gather_auto ну с этим все понятно, чем меньше интервал тем больше трафика и нагрузки на проц, но меньше шанс что бот незаметит лутину. Помоему 0.3 сек, по умолчанию, с головой должно хватать на поставленную задачу.

ai_items_gather_start с этим вроде тоже все ясно, лутить будем только после того как лут провалялся в поле зрения указанный промежуток времени. В данном случае по умолчанию опять стоит 0.3 и этого, опять же, с головой должно хватать для выполнения поставленных задач.

Если я не упустил других параметров влияющих на работу бота в подбирании лута, то получается что наиболее вероятными для настройки будут:
ai_take_giveup
ai_items_gather_giveup
Но я не уверен в этом из-за недостаточных знаний о механике процессов внутри бота и порядке их срабатывания.
Потестить смогу только вечером после работы.

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

Сообщение kLabMouse »

За подбор чужого лута отвечает gather
take уже за сам подбор. ТЕ В процесе.
bird_flu
Начинающий
Сообщения: 34
Зарегистрирован: Пт ноя 17, 2006 8:05 am

Сообщение bird_flu »

Я правильно понимаю что если в радиусе находятся 10 лутин, то для того что бы он успел все их собрать надо настроить ai_items_gather_giveup например на 20 секунд. Я правильно понимаю что этот параметр начинает работать на лутину с момента ее появления в поле зрения? Потому что если это не так, то манипуляции с ним не принесут нужного эффекта.
Если же проблема в этом параметре, то какие могут быть подводные камни? Бот может нарваться на тяжелую лутину, например 50 хербов, и 20 секунд или пока она не исчезнет, стоять тупить. Можно ли это как-то обойти? Т.е. заставить бота сразу идти к следующей лутине в случае например пяти неудачных попыток подбора?

И что насчет gather_auto и gather_start? Дефолтные параметры никак не мешают выполнению задачи, верно?
Аватара пользователя
kLabMouse
Профессионал
Сообщения: 4776
Зарегистрирован: Вс ноя 05, 2006 4:32 pm

Сообщение kLabMouse »

bird_flu
Блин. Да прочитай ты мануал внимательно. там все твои вопросы описаны.

ЗЫ: Ненавижу ленивый народ.
bird_flu
Начинающий
Сообщения: 34
Зарегистрирован: Пт ноя 17, 2006 8:05 am

Сообщение bird_flu »

Проблема в том что в мануале я ненашел ответа на свои вопросы.
Вот смотри сам:

ai_items_take_start (<seconds>)
When your monster died and Kore is set to take items dropped by monsters you killed (see itemsTakeAuto in config.txt), start checking for monster loots after the specified number of seconds.
Тут про убитых мобов, значит не то.


ai_items_take_end (<seconds>)
When your monster died and there are no more monster loots to take, stop checking for loots after the specified number of seconds
Аналогично предыдущему


ai_take (<seconds>)
When picking up items, send the 'take' packet every specified number of seconds until the item has been taken.
Это явно не то.


ai_take_giveup (<seconds>)
When trying to pick up an item, give up if you weren't able to take the item after the specified number of seconds.
Если ты говоришь то take это про убитых мобов, то этот параметр тоже не интересен.


ai_items_gather_giveup (<seconds>)
When trying to gather an item, give up if you weren't able to take it within the specified number of seconds.
Если переводить дословно, то это про лут, который бот пытается поднять, у меня с этим нет проблемы.
Проблема моего бота заключается в том, что он проходит мимо лутин вообще, поднимает только некоторые из тех что лежат напосредственно на линии его роута.


ai_items_gather_auto (<seconds>)
If Kore is set to gather loots (see itemsGatherAuto in config.txt), check for items you can gather every specified number of seconds.
Мой бот по 3 раза в секунду проводит проверку на наличие лута который можно поднять, но это ему не помогает.


ai_items_gather_start (<seconds>)
When checking for items to gather, only take an item if the specified number of seconds has elapsed since the item appeared on screen.
Подбираем только лутины которые пролежали в поле зрения больше указанного отрезка. У меня стоит дефолт - 0.3, значит это никак не может мешать задачам бота.


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

Сообщение lirikpl »

bird_flu писал(а):Бот может нарваться на тяжелую лутину, например 50 хербов, и 20 секунд или пока она не исчезнет, стоять тупить. Можно ли это как-то обойти? Т.е. заставить бота сразу идти к следующей лутине в случае например пяти неудачных попыток подбора?
ai_take_giveup 8
ai_items_gather_giveup 8
эти 2 параметра отвечают за отказ в поднятие лута в случае не удачи.В данном случае он будет пытаться поднять 8 сек.В частности своего и чужого лута.
bird_flu
Начинающий
Сообщения: 34
Зарегистрирован: Пт ноя 17, 2006 8:05 am

Сообщение bird_flu »

Это я понимаю, но это только для лутин которые он пытается поднять, т.е. к которым он подходит.
Но бот просто не подходит ко многим лутинам - тупо проходит мимо них.
Можно ли сделать так, что бы бот увидив лутину сразу направлялся к ней, потом к следующей и т.д. по порядку? Если так и должно быть, то в чем может быть проблема? Лаги? Большое кол-во игроком в зоне видимости? Конфликт с каким-нибудь параметром из конфига?
lirikpl
Грамотный
Сообщения: 476
Зарегистрирован: Вс ноя 12, 2006 12:58 am

Сообщение lirikpl »

Какой сервер?и Случаем (ну вдруг)может в пикап итем запрет стоит?
kLabMouse писал(а):За подбор чужого лута отвечает gather
take уже за сам подбор. ТЕ В процесе.
Вот что уже тебе говорили, ты точно проверил?
gather есть еще в конфиге разрешить подбор чужого лута,если он пытается собирать не свой лут.
bird_flu
Начинающий
Сообщения: 34
Зарегистрирован: Пт ноя 17, 2006 8:05 am

Сообщение bird_flu »

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

Пикап айтемс All 1
Сервер Раггейм=)
lirikpl
Грамотный
Сообщения: 476
Зарегистрирован: Вс ноя 12, 2006 12:58 am

Сообщение lirikpl »

bird_flu писал(а): Сервер Раггейм=)
ну С этого надо биило и начинать.На данный момент viewtopic.php?t=2912&postdays=0&postorder=asc&start=0
тебе скорее всего сюда.
bird_flu
Начинающий
Сообщения: 34
Зарегистрирован: Пт ноя 17, 2006 8:05 am

Сообщение bird_flu »

Странно, а что там принципиально изменилось что бот начал игнорить половину лута? Если это действительно может быть связано, то прошу перекинуть тему в раздел оф сервера.
Ответить