[bug] Баги xKore, связанные с clientSuspend - странные паузы
Модератор: 4epT
- piroJOKE
- Модератор
- Сообщения: 8204
- Зарегистрирован: Сб ноя 04, 2006 2:20 am
- Сервер RO:: localhost
- Откуда: Molvania
[bug] Баги xKore, связанные с clientSuspend - странные паузы
В modKore была такая фича: если юзер начинал предпринимать какие-либо действия, AI временно отключалось. Это было удобно.
Было ли это в оригинальной Kore ("привязывающийся к клиенту" бот был отдельной версией Kore), я ужо не помню, но и неважно.
В OpenKore такая вещь заявлена, но она не работает. Очевидно, где-то есть ошибка.
Вместо этого, эта штука зачем-то активируется при смене карты, например при помощи портала. Выглядит это так - Коре стоит на месте, а его где-то секунд 5 мочат мобы:
------ AI Sequence ---------------------
0: clientSuspend {timeout=>'10',time=>'1184082245',args=>],type=>'0'}
1: route
------ AI Sequences --------------------
Побороть надо бы обе проблемы!
- вернуть реакцию на действия клиента;
- отключить эту ошибочную реакцию при смене карты;
ЗЫ: Лишних задержек при переходе между порталами я что-то раньше (~ 1.9.0) не замечал.
Было ли это в оригинальной 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 раза.
- piroJOKE
- Модератор
- Сообщения: 8204
- Зарегистрирован: Сб ноя 04, 2006 2:20 am
- Сервер RO:: localhost
- Откуда: Molvania
Ну-с, от дурацких задержек, связанных с clientSuspend, я избавился легко:
CoreLogic.pm:
...но это кривое решение, заплатка. Т.к. мы не решаем проблему, а просто ее обходим.
ЗЫ: Переход автоматом на ручное управление, естественно, не пашет.
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 раза.
- piroJOKE
- Модератор
- Сообщения: 8204
- Зарегистрирован: Сб ноя 04, 2006 2:20 am
- Сервер RO:: localhost
- Откуда: Molvania
Ты не совсем понял. Он считает телепорт за сигнал, что юзер решил вручную порулить клиентом (см.первый пост), и отключает логику Kore на 10 (?) секунд. Отчего он так решает, надо разобраться.
* * *
ЗЫ: Небольшое исправление предыдущей заплатки - добавил маленькую паузу (sleep), иначе не успевало отрабатывать наличие шмотокъ в инвентаре.
* * *
ЗЫ: Небольшое исправление предыдущей заплатки - добавил маленькую паузу (sleep), иначе не успевало отрабатывать наличие шмотокъ в инвентаре.
- piroJOKE
- Модератор
- Сообщения: 8204
- Зарегистрирован: Сб ноя 04, 2006 2:20 am
- Сервер RO:: localhost
- Откуда: Molvania
Кстати, добавление задержки (идея из предыдущего поста) в процедуру выше не улучшило положение - Кора по-прежднему не обнаруживает крылышек при себе с этим патчем, например при роуте_телепорт'е.
Последний раз редактировалось piroJOKE Вт фев 19, 2008 7:43 pm, всего редактировалось 1 раз.
попробова вставить это творение в кору 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.
Никогда не спорь с нубом!!! Сначала он опустит тебя до своего уровня, потом задавит опытом.