почему бот отбегает после убийства?
Модератор: 4epT
Правила форума
Все вопросы по OK не касающиеся плагинов и макросов публикуются в этом разделе.
Перед тем как что то писать, пожалуйста, удостоверьтесь что данная тема не поднималась, вы полностью изучили мануалы по конфигурационным файлам бота и не нашли там решения.
Все вопросы по OK не касающиеся плагинов и макросов публикуются в этом разделе.
Перед тем как что то писать, пожалуйста, удостоверьтесь что данная тема не поднималась, вы полностью изучили мануалы по конфигурационным файлам бота и не нашли там решения.
почему бот отбегает после убийства?
Типа убил зверушку, барахло подобрал, и как будто бы собирается бежать на заранее рассчитанную точку пути куда ему там надо было, пробегает пару клеток, потом вспоминает, что вокруг оказцо еще есть мобы, разворачивается и идет совать им в морду.
паАчиму не сразу?
Вроде такое уже спрашивали на прошлом форуме, тока я не помню, чем тама дело кончилося..
паАчиму не сразу?
Вроде такое уже спрашивали на прошлом форуме, тока я не помню, чем тама дело кончилося..
-
- Энтузиаст
- Сообщения: 60
- Зарегистрирован: Пн ноя 06, 2006 5:14 pm
- Контактная информация:
Не, не катит. Если бы это был первый мой сервер, я бы еще призадумался. Но начилось то все на Хевенс Анжере, с x100 дропом. И в антхеле из каждого муравьишки что-нибудь до падало. Ан нет - отбегает зараза и все тут!
P.S. В дополнение:
Бывает и по другому. Бот бежит вперед, атакует моба, но не останавливается. Моб дает сдачи. Бот приостанавливается, идет к мобу. "Говорит: а, ладно, живи пока и снова отходит, однако моб тяпнуть его успевает. И так вот бедный чар разрываясь между желанием набить морду мобу и желанием продолжить движение, схлопотал раз 5, но потом все же остановился и добил моба...
P.S. В дополнение:
Бывает и по другому. Бот бежит вперед, атакует моба, но не останавливается. Моб дает сдачи. Бот приостанавливается, идет к мобу. "Говорит: а, ладно, живи пока и снова отходит, однако моб тяпнуть его успевает. И так вот бедный чар разрываясь между желанием набить морду мобу и желанием продолжить движение, схлопотал раз 5, но потом все же остановился и добил моба...
Истина там, во тьме, и во тьме ты иди - мыслящий бродит во тьме.
В себя самого загляни, открой свою дорогу в Ничто.
В Ничто ты войди, во тьму, и пойми:
Пока ты во тьме, не может она быть Ничем - ведь там ты.
В себя самого загляни, открой свою дорогу в Ничто.
В Ничто ты войди, во тьму, и пойми:
Пока ты во тьме, не может она быть Ничем - ведь там ты.
ета хрень появилась в 1.9.х версиях в 1.6.х вроде нет а так viewtopic.php?t=217
Раньше АИ было в функции АИ в файлике functions, и там порядок обрабтки был такой:kLabMouse писал(а):Jerry
Мля ну ты же программер.. росмотри почему у него проверка на мобов стоит пожже чем идти. Пусть сначала заатачит моба а только потом пустится в путь.... если конечно рядом нет других мобов.
Или хотб найди мне где собака зарыта.. исправлю.
##### REAL AI STARTS HERE #####
##### MISC #####
##### CLIENT SUSPEND #####
##### CHECK FOR UPDATES #####
##### AUTOBREAKTIME #####
##### TALK WITH NPC ######
##### WAYPOINT ####
##### DEAD #####
##### STORAGE GET #####
#### CART ADD ####
#### CART Get ####
##### DROPPING #####
##### DELAYED-TELEPORT #####
####### AUTO MAKE ARROW #######
#####AUTO STORAGE#####
#####AUTO SELL#####
#####AUTO BUY#####
##### AUTO-CART ADD/GET ####
##### LOCKMAP #####
##### AUTO STATS #####
##### AUTO SKILLS #####
##### RANDOM WALK #####
##### FOLLOW #####
##### FOLLOW-LOST #####
##### SITAUTO-IDLE #####
##### SITTING #####
##### STANDING #####
##### SIT AUTO #####
##### ATTACK #####
##### AUTO-ITEM USE #####
##### AUTO-SKILL USE #####
##### PARTY-SKILL USE #####
##### MONSTER SKILL USE #####
##### AUTO-EQUIP #####
##### SKILL USE #####
##### AUTO-ATTACK #####
####### ROUTE #######
####### MAPROUTE #######
##### ITEMS TAKE #####
##### ITEMS AUTO-GATHER #####
##### ITEMS GATHER #####
##### TAKE #####
##### MOVE #####
##### AUTO-TELEPORT #####
##### TELEPORT HP #####
##### TELEPORT MONSTER #####
##### TELEPORT IDLE / PORTAL #####
##### ALLOWED MAPS #####
##### AUTO RESPONSE #####
##### AVOID GM OR PLAYERS #####
##### SEND EMOTICON #####
##### AUTO SHOP OPEN #####
##########
Тоесть вроде бы движение обрататывалось позже чем в очередь АИ добавлялась атака от ##### AUTO-ATTACK #####
А сейчас в КореЛоджик идет разделение АИ на авто и мануал, и мануал идет первым, и там обрабатываются перемещения,
а авто-атака идет уже в самом конце, в авто-АИ.
##### MANUAL AI STARTS HERE #####
Plugins::callHook('AI_pre/manual');
Benchmark::begin("AI (part 1)") if DEBUG;
return if processClientSuspend();
Benchmark::begin("AI (part 1.1)") if DEBUG;
processLook();
processNPCTalk();
processDrop();
processEscapeUnknownMaps();
Benchmark::end("AI (part 1.1)") if DEBUG;
Benchmark::begin("AI (part 1.2)") if DEBUG;
processDelayedTeleport();
processSit();
processStand();
AI::Attack::process();
Benchmark::end("AI (part 1.2)") if DEBUG;
Benchmark::begin("AI (part 1.3)") if DEBUG;
processSkillUse();
processRouteAI();
processMapRouteAI();
processTake();
processMove();
Benchmark::end("AI (part 1.3)") if DEBUG;
Benchmark::begin("AI (part 1.4)") if DEBUG;
Benchmark::begin("ai_autoItemUse") if DEBUG;
processAutoItemUse();
Benchmark::end("ai_autoItemUse") if DEBUG;
Benchmark::begin("ai_autoSkillUse") if DEBUG;
processAutoSkillUse();
Benchmark::end("ai_autoSkillUse") if DEBUG;
Benchmark::end("AI (part 1.4)") if DEBUG;
Benchmark::end("AI (part 1)") if DEBUG;
Misc::checkValidity("AI part 1");
return if ($AI != 2);
##### AUTOMATIC AI STARTS HERE #####
Plugins::callHook('AI_pre');
Benchmark::begin("AI (part 2)") if DEBUG;
ChatQueue::processFirst;
processEquip();
processDeal();
processDealAuto();
processPartyAuto();
processGuildAutoDeny();
Misc::checkValidity("AI part 1.1");
processAutoBreakTime();
processWaypoint();
processDead();
processStorageGet();
processCartAdd();
processCartGet();
processAutoMakeArrow();
Benchmark::end("AI (part 2)") if DEBUG;
Misc::checkValidity("AI part 2");
Benchmark::begin("AI (part 3)") if DEBUG;
Benchmark::begin("AI (part 3.1)") if DEBUG;
processAutoStorage();
Misc::checkValidity("AI (autostorage)");
processAutoSell();
Misc::checkValidity("AI (autosell)");
processAutoBuy();
Misc::checkValidity("AI (autobuy)");
processAutoCart();
Misc::checkValidity("AI (autocart)");
Benchmark::end("AI (part 3.1)") if DEBUG;
Benchmark::begin("AI (part 3.2)") if DEBUG;
processLockMap();
processAutoStatsRaise();
processAutoSkillsRaise();
processRandomWalk();
processFollow();
Benchmark::end("AI (part 3.2)") if DEBUG;
Benchmark::begin("AI (part 3.3)") if DEBUG;
processSitAutoIdle();
processSitAuto();
Benchmark::end("AI (part 3.3)") if DEBUG;
Benchmark::end("AI (part 3)") if DEBUG;
Benchmark::begin("AI (part 4)") if DEBUG;
processPartySkillUse();
processMonsterSkillUse();
Misc::checkValidity("AI part 3");
processAutoEquip();
processAutoAttack();
processItemsTake();
processItemsAutoGather();
processItemsGather();
processAutoTeleport();
processAllowedMaps();
processAutoResponse();
processAvoid();
processSendEmotion();
processAutoShopOpen();
Benchmark::end("AI (part 4)") if DEBUG;
##########
Соответсвенно хотелось бы как то перенести АвтоАтаку и ВзятиеЛута выше перемешения, возможно тогда он не бует так дергаться. Но просто пересавить мне кажется нельзя, так как код написан с предположением что соблюдается определенная очередность вызовов (например отмена атаки идет с очисткой очереди АИ)...
Как все это проверить и сделать - не знаю, подскажите =)
Да пробовал переставить, толку мало... мало того что все рано отбегает, иногда вместо атаки как даст деру куда то... и не атакует никого, идет себе и идет, потом его расклинивает, начинает опять атаковать ))))piroJOKE писал(а):Блин... а просто переставить местами проверки?... Казалось бы - всё просто, разве нет?
DInvalid
Тям Явно Баг. Появился в явном виде после ввода Мануального режима.
Ну в Общем. Мы с разработчиками решили зализать и перелизать весь Код Кора, даже новый АИ Встроить вместо старого который более лучше повторяет человека и вообще почти идеален несмотря на некоторые явные отлонения в работе (иногда тупо вызывает ошибку перл енжена из-за галимой оптимизации)
Тям Явно Баг. Появился в явном виде после ввода Мануального режима.
Ну в Общем. Мы с разработчиками решили зализать и перелизать весь Код Кора, даже новый АИ Встроить вместо старого который более лучше повторяет человека и вообще почти идеален несмотря на некоторые явные отлонения в работе (иногда тупо вызывает ошибку перл енжена из-за галимой оптимизации)
Пытаюсь отловить места в логе где есть эта проблема, что бы понять в чем она...
Вроде нашел:
Вроде нашел:
Код: Выделить всё
Monster Exists: Baby Desert Wolf (0)
Monster Exists: Savage Babe (1)
Monster Moved: Savage Babe (1) - (362, 94) -> (364, 88)
Ready to attack target (which is 1.0 blocks away); we're at (350,91)
Sent attack (hooked):
Sent get player info:
AI: attack route | 2
Received packet: 008A Handler: actor_action
[ 31/100] You attack Monster Picky (2) - Dmg: 72 (delay 49.1)
[ 31/100] Monster Picky (2) attacks you - Dmg: Miss! (delay 28.8)
Sent attack (hooked):
Received packet: 008A Handler: actor_action
[ 31/100] You attack Monster Picky (2) - Dmg: 63 (delay 49.1)
Received packet: 0080 Handler: actor_died_or_disappeared
Monster Died: Picky (2)
Target died
###УБИЛИ###
Exp gained: 4/3 (0.02%/0.03%)
AI: items_take route | 2
###И куда то пошли...###
Route - next step moving to (342, 88), index 15, 334 steps left
Sending move from (348,92) to (342,88) - distance 7.21
Sent move to: 342, 88
Received packet: 022C Handler: actor_display
Monster Moved: Savage Babe (3) - (347, 104) -> (340, 99)
Received packet: 0087 Handler: character_moves
You're moving from (350, 91) to (342, 88) - distance 8.5, unknown 136
Received packet: 0080 Handler: actor_died_or_disappeared
Monster Disappeared: Savage Babe (1)
Move - moving
####Но передумали####
Attacking: Monster Baby Desert Wolf (0)
Target distance 19.4 is >2.5; moving to target: from (350,91) to (361,92)
On route to: Prontera Field (prt_fild09): 361, 92
Route Solution Ready
Route - trimming down solution by 1.5 steps for distFromGoal 1.5
Route - next step moving to (361, 91), index 12, 13 steps left
Sending move from (350,91) to (361,91) - distance 11.00