[bug] Баги xKore, связанные с clientSuspend - странные паузы

BugTraq: обнаруженные ошибки и обсуждение их устранения.

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

Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

[bug] Баги xKore, связанные с clientSuspend - странные паузы

Сообщение piroJOKE »

В modKore была такая фича: если юзер начинал предпринимать какие-либо действия, AI временно отключалось. Это было удобно.
Было ли это в оригинальной Kore ("привязывающийся к клиенту" бот был отдельной версией Kore), я ужо не помню, но и неважно.

В OpenKore такая вещь заявлена, но она не работает. Очевидно, где-то есть ошибка.

Вместо этого, эта штука зачем-то активируется при смене карты, например при помощи портала. Выглядит это так - Коре стоит на месте, а его где-то секунд 5 мочат мобы:

------ AI Sequence ---------------------
0: clientSuspend {timeout=>'10',time=>'1184082245',args=>],type=>'0'}
1: route
------ AI Sequences --------------------

Побороть надо бы обе проблемы!

- вернуть реакцию на действия клиента;
- отключить эту ошибочную реакцию при смене карты;

ЗЫ: Лишних задержек при переходе между порталами я что-то раньше (~ 1.9.0) не замечал.
Последний раз редактировалось piroJOKE Сб мар 15, 2008 3:54 pm, всего редактировалось 2 раза.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Ну-с, от дурацких задержек, связанных с clientSuspend, я избавился легко:

CoreLogic.pm:

Код: Выделить всё

sub processClientSuspend {
	my $result = 0;
-	if (AI::action eq 'clientSuspend' && timeOut(AI::args)) {
+	if (AI::action eq 'clientSuspend') {
+		sleep 0.5;
		debug "AI suspend by clientSuspend dequeued\n";
+		message "debug - AI suspend by clientSuspend dequeued\n";
		AI::dequeue;
	} elsif (AI::action eq "clientSuspend" && $net->clientAlive()) { 
...но это кривое решение, заплатка. Т.к. мы не решаем проблему, а просто ее обходим.

ЗЫ: Переход автоматом на ручное управление, естественно, не пашет.
Последний раз редактировалось piroJOKE Вт фев 19, 2008 7:42 pm, всего редактировалось 2 раза.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Pika4u
Энтузиаст
Сообщения: 94
Зарегистрирован: Пн май 28, 2007 12:45 pm

Сообщение Pika4u »

У меня такой же глюк наблюдается при юзании telesearch в хкоре 1, он телепорт считает за смену карты и тоже стоит некоторое время. Надеюсь эта заплатка поможет.
Изображение
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Ты не совсем понял. Он считает телепорт за сигнал, что юзер решил вручную порулить клиентом (см.первый пост), и отключает логику Kore на 10 (?) секунд. Отчего он так решает, надо разобраться.

* * *

ЗЫ: Небольшое исправление предыдущей заплатки - добавил маленькую паузу (sleep), иначе не успевало отрабатывать наличие шмотокъ в инвентаре.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Кстати, добавление задержки (идея из предыдущего поста) в процедуру выше не улучшило положение - Кора по-прежднему не обнаруживает крылышек при себе с этим патчем, например при роуте_телепорт'е.
Последний раз редактировалось piroJOKE Вт фев 19, 2008 7:43 pm, всего редактировалось 1 раз.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

(перенесено из "идей" в "баги")
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
oneIF
Новичок
Сообщения: 6
Зарегистрирован: Ср янв 02, 2008 5:45 pm

Сообщение oneIF »

попробова вставить это творение в кору 194SVN5704, и она матерится чё то, может у мя лапки кривые вообщем вот что говорит она
syntax error at F:/Downloads/Ro/BOT/src/AI/CoreLogic.pm line 289, near "
- if"
syntax error at F:/Downloads/Ro/BOT/src/AI/CoreLogic.pm line 295, near "
} elsif"
Compilation failed in require at openkore.pl line 63.
BEGIN failed--compilation aborted at openkore.pl line 63.
Никогда не спорь с нубом!!! Сначала он опустит тебя до своего уровня, потом задавит опытом.
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Знаки не надо вписывать; знак "минус" означает "убрать эту строку", а "плюс" - "добавить эту строку". Это, так сказать, diff-стайл. )
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
oneIF
Новичок
Сообщения: 6
Зарегистрирован: Ср янв 02, 2008 5:45 pm

Сообщение oneIF »

спасибо за пояснение, просто лапки кривые говорю же)))
Никогда не спорь с нубом!!! Сначала он опустит тебя до своего уровня, потом задавит опытом.
Аватара пользователя
4epT
macro-маньячина
Сообщения: 2792
Зарегистрирован: Чт дек 21, 2006 1:23 pm
Сервер RO:: 4game
Discord: ya4ept#8494
Контактная информация:

Re: [bug] Баги xKore, связанные с clientSuspend - странные паузы

Сообщение 4epT »

up однако
Быстро и качественно напишу конфиг (макрос)! Стучи!
¤ Свежий бот ¤ Config checker ¤ Manual ¤
Изображение
Изображение
Ответить