Страница 1 из 1

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

Добавлено: Вт июл 10, 2007 6:55 pm
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) не замечал.

Добавлено: Чт июл 12, 2007 7:01 pm
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()) { 
...но это кривое решение, заплатка. Т.к. мы не решаем проблему, а просто ее обходим.

ЗЫ: Переход автоматом на ручное управление, естественно, не пашет.

Добавлено: Чт июл 12, 2007 8:28 pm
Pika4u
У меня такой же глюк наблюдается при юзании telesearch в хкоре 1, он телепорт считает за смену карты и тоже стоит некоторое время. Надеюсь эта заплатка поможет.

Добавлено: Чт июл 12, 2007 11:16 pm
piroJOKE
Ты не совсем понял. Он считает телепорт за сигнал, что юзер решил вручную порулить клиентом (см.первый пост), и отключает логику Kore на 10 (?) секунд. Отчего он так решает, надо разобраться.

* * *

ЗЫ: Небольшое исправление предыдущей заплатки - добавил маленькую паузу (sleep), иначе не успевало отрабатывать наличие шмотокъ в инвентаре.

Добавлено: Вт июл 24, 2007 11:02 pm
piroJOKE
Кстати, добавление задержки (идея из предыдущего поста) в процедуру выше не улучшило положение - Кора по-прежднему не обнаруживает крылышек при себе с этим патчем, например при роуте_телепорт'е.

Добавлено: Вт фев 19, 2008 7:41 pm
piroJOKE
(перенесено из "идей" в "баги")

Добавлено: Вт фев 19, 2008 8:49 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.

Добавлено: Вт фев 19, 2008 9:26 pm
piroJOKE
Знаки не надо вписывать; знак "минус" означает "убрать эту строку", а "плюс" - "добавить эту строку". Это, так сказать, diff-стайл. )

Добавлено: Ср фев 20, 2008 9:49 am
oneIF
спасибо за пояснение, просто лапки кривые говорю же)))

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

Добавлено: Вс июн 12, 2011 3:10 am
4epT
up однако