принудительная синхронизация / проблемы синхронизации / PP

Официальный сервер Ragnarok On-Line в России - https://ru.4game.com/ro/install/

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

Правила форума
ВНИМАНИЕ: реклама сторонних ботов запрещена! Всякие плюшки - можно :)
¤Seii¤
Энтузиаст
Сообщения: 62
Зарегистрирован: Чт ноя 30, 2006 4:38 pm

Сообщение ¤Seii¤ » Пт дек 08, 2006 6:18 pm

DInvalid
насколько я понимаю, наверное, из-за рассинхронизации пакет прошлой атаки может совпадать с пакетом "встать" (или "сесть") в данный момент и получается вот такая дребедень

Пирожок, никак это не выглядит со стороны. Просто стоит и тупит %)
Remember botting can be fun and not just because you get to taste the fruit without much work, but because you can have a lot of memorable moments.

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

Сообщение piroJOKE » Пт дек 08, 2006 6:42 pm

Что значит "стоит"? Он "стоит" или бегает туда-сюда?
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download

¤Seii¤
Энтузиаст
Сообщения: 62
Зарегистрирован: Чт ноя 30, 2006 4:38 pm

Сообщение ¤Seii¤ » Пт дек 08, 2006 6:45 pm

piroJOKE
стоит на месте, просто стоит ..
Remember botting can be fun and not just because you get to taste the fruit without much work, but because you can have a lot of memorable moments.

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

Сообщение kLabMouse » Пт дек 08, 2006 6:51 pm

Видимо проблема состоит в в том, что пакет атаки может немного опоздать, те отправится после Синка а должен до. Что и візівает вот-такой вот тупняк.

¤Seii¤
Энтузиаст
Сообщения: 62
Зарегистрирован: Чт ноя 30, 2006 4:38 pm

Сообщение ¤Seii¤ » Пт дек 08, 2006 6:54 pm

kLabMouse
в 169 это очень заметно Х_х зачастую по aiv видно вот такое у бота

ai_seq (on) = skill_use route skill_use attack skill_use sitAuto

В итоге он просто стоит и его избивают, после "ручного" телепорта он начинает бегать, после автоматического стоит тупит пока ему не подашь команду на атаку, теле или скилюз.
Remember botting can be fun and not just because you get to taste the fruit without much work, but because you can have a lot of memorable moments.

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

Сообщение kLabMouse » Пт дек 08, 2006 7:07 pm

¤Seii¤
ХЗ, ХЗ. Дело в том что я за Целую недель не наблидал ни одного похожего глюка, ХЗ Почему. Но многие говорят что такое есть потому и зделал данній топик как идею как зделать.
:cry:

DInvalid
Грамотный
Сообщения: 368
Зарегистрирован: Вт ноя 14, 2006 4:54 pm

Сообщение DInvalid » Пт дек 08, 2006 8:37 pm

¤Seii¤ писал(а):DInvalid
насколько я понимаю, наверное, из-за рассинхронизации пакет прошлой атаки может совпадать с пакетом "встать" (или "сесть") в данный момент и получается вот такая дребедень

Пирожок, никак это не выглядит со стороны. Просто стоит и тупит %)
Давайте рассуждать логически. В каком случае мы получаем в консоли сообщение You are standing?
Как я понимаю, при обработке вот этого пакета.
'008A' => ['actor_action', 'a4 a4 a4 V2 s1 v1 C1 v1', [qw(sourceID targetID tick src_speed dst_speed damage param2 type param3)]]
сообщений у меня идет по 4 подряд, значит пришло 4 таких пакета.
Причем как я понимаю,
if ($args->{sourceID} eq $accountID) {
message T("You are standing.\n");
if ($config{sitAuto_idle}) {
$timeout{ai_sit_idle}{time} = time;
}
$char->{sitting} = 0;
ID при этом должен быть моим

Почему сервер посылает мне 4 пакета что бот встал в то время как он должен бить моба?
Либо бот действительно послал ему вместо атаки пакеты "встать", но в них вроде бы должен быть ИД себа а в пакетах атаки - ИД моба.
Либо бот послал пакеты атаки, но из за чего-то сервер воспринял их как "встать".
Либо сервер сам посылает пакеты "вы встали" а клиент на них как то должен среагировать (проверка клиента).

А как это проверить?

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

Сообщение kLabMouse » Пт дек 08, 2006 8:40 pm

DInvalid
Нет. Дело в том. Что если Задержались пакеты Атаки, ТЕ отосланы относително старого синка, а мы уже синхронизировались. Но ети пакеты ещё висят в Кеше, из-за чего получается что реакция не верна.

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

Сообщение piroJOKE » Пт дек 08, 2006 8:42 pm

Офтопик, флуд, бредовая идея:
Если мы видим, что до синхронизации осталось двух секунд, перестаём посылать пакеты "атака!". ^___^
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download

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

Сообщение kLabMouse » Пт дек 08, 2006 8:44 pm

piroJOKE
НЕТ. Лучше Их Создавать Именно в момент Атаки. А не в любой удобный момент когда их создали.
Видимо там сильно большой Глюк Коры получается....

DInvalid
Грамотный
Сообщения: 368
Зарегистрирован: Вт ноя 14, 2006 4:54 pm

Сообщение DInvalid » Сб дек 09, 2006 12:01 pm

kLabMouse писал(а):DInvalid
Нет. Дело в том. Что если Задержались пакеты Атаки, ТЕ отосланы относително старого синка, а мы уже синхронизировались. Но ети пакеты ещё висят в Кеше, из-за чего получается что реакция не верна.
kLabMouse, я вас очень уважаю, но тем не менее, вы проверяли что оно именно так и происходит? Или просто - вы так считаете?

У меня тогда пара вопросов :
1) SYNC идет напрямую, не через буфер?
Т.е. мы сформировали пакеты атаки, они помещены в буфер на отправку, но в это время мы посылаем синк, который уходит напрямую а не в буфер, вследствии чего пакеты устаревают?
Или где они задержались? Я не знаю так хорошо весь механизм как вы, поэтому могли бы вы подробнее разъяснить?

2) Как тогда объяснить ЭТО:

console.log

[Dec 9 10:30:34 2006.38] Attacking: Monster PecoPeco's Egg (2)
[Dec 9 10:30:36 2006.10] [ 97/100] You attack Monster PecoPeco's Egg (2) - Dmg: 50 (delay 55.2)
[Dec 9 10:30:37 2006.20] [ 97/100] You attack Monster PecoPeco's Egg (2) - Dmg: 42 (delay 55.2)
[Dec 9 10:30:38 2006.34] [ 97/100] You attack Monster PecoPeco's Egg (2) - Dmg: 39 (delay 55.2)
[Dec 9 10:30:39 2006.45] [ 97/100] You attack Monster PecoPeco's Egg (2) - Dmg: 46 (delay 55.2)
[Dec 9 10:30:40 2006.57] [ 97/100] You attack Monster PecoPeco's Egg (2) - Dmg: 45 (delay 55.2)
[Dec 9 10:30:44 2006.31] You are sitting.
[Dec 9 10:30:44 2006.37] You are sitting.
[Dec 9 10:30:51 2006.18] You are standing.
[Dec 9 10:30:51 2006.24] [100/100] You attack Monster PecoPeco's Egg (2) - Dmg: 45 (delay 55.2)
[Dec 9 10:30:52 2006.34] [100/100] You attack Monster PecoPeco's Egg (2) - Dmg: 52 (delay 55.2)
[Dec 9 10:30:53 2006.45] [100/100] You attack Monster PecoPeco's Egg (2) - Dmg: 43 (delay 55.2)
[Dec 9 10:30:54 2006.57] [100/100] You attack Monster PecoPeco's Egg (2) - Dmg: 55 (delay 55.2)
[Dec 9 10:30:55 2006.70] [100/100] You attack Monster PecoPeco's Egg (2) - Dmg: 43 (delay 55.2)
[Dec 9 10:30:56 2006.27] Target died

sendPacket log - logToFile_Debug sendPacket=log1.txt

[Dec 9 10:30:34 2006] Sent move to: 213, 284
[Dec 9 10:30:34 2006] Sent move to: 213, 284
[Dec 9 10:30:35 2006] Sent move to: 213, 284
[Dec 9 10:30:35 2006] Sent move to: 213, 284
[Dec 9 10:30:36 2006] Sent attack by plugin: E5 D2 00 00
[Dec 9 10:30:37 2006] Sent attack by plugin: E5 D2 00 00
[Dec 9 10:30:38 2006] Sent attack by plugin: E5 D2 00 00
[Dec 9 10:30:38 2006] Sent get player info: ID - 8B D2 00 00
[Dec 9 10:30:38 2006] Sent Sync
[Dec 9 10:30:39 2006] Sent attack by plugin: E5 D2 00 00
[Dec 9 10:30:40 2006] Sent attack by plugin: E5 D2 00 00
[Dec 9 10:30:41 2006] Sent attack by plugin: E5 D2 00 00
[Dec 9 10:30:42 2006] Sent attack by plugin: E5 D2 00 00
[Dec 9 10:30:43 2006] Sent attack by plugin: E5 D2 00 00
[Dec 9 10:30:44 2006] Sent attack by plugin: E5 D2 00 00
[Dec 9 10:30:44 2006] Standing by plugin
[Dec 9 10:30:44 2006] Standing by plugin
[Dec 9 10:30:45 2006] Standing by plugin
[Dec 9 10:30:46 2006] Standing by plugin
[Dec 9 10:30:47 2006] Standing by plugin
[Dec 9 10:30:48 2006] Standing by plugin
[Dec 9 10:30:49 2006] Standing by plugin
[Dec 9 10:30:50 2006] Standing by plugin
[Dec 9 10:30:50 2006] Sent Sync
[Dec 9 10:30:51 2006] Standing by plugin
[Dec 9 10:30:51 2006] Sent attack by plugin: E5 D2 00 00
[Dec 9 10:30:52 2006] Sent attack by plugin: E5 D2 00 00
[Dec 9 10:30:53 2006] Sent attack by plugin: E5 D2 00 00
[Dec 9 10:30:54 2006] Sent attack by plugin: E5 D2 00 00
[Dec 9 10:30:55 2006] Sent attack by plugin: E5 D2 00 00
[Dec 9 10:30:57 2006] Sent move to: 216, 285

В Send.pm нет логирования пакетов посланных плагинами - добавлено ко всем
функциям использующим плагины

Plugins::callHook('packet_pre/sendStand', \%args);
if ($args{return}) {
sendMsgToServer($r_net, $args{msg});
debug "Standing by plugin\n", "sendPacket", 2;
return;
}


Как мы видим, вызывается!!! sub sendStand из Send.pm, и посылаются пакеты встать, это не искаженные пакеты атаки, не надо ля ля, это именно пакеты встать. Или я ошибаюсь!?

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

Сообщение piroJOKE » Сб дек 09, 2006 12:08 pm

Оффтопик, бредовая идея.
Перцы, а там нет такой темы, что:
а) мы посылаем синк...
...zzz...
б) мы посылаем атаку...
в) мы посылаем синк...
г-1) "ошибко" - мы посылаем... атаку на основании старого синка?! О_о
г-2) требуется принудительная посылка атаки после синка?! О_о
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download

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

Сообщение piroJOKE » Сб дек 09, 2006 12:12 pm

DInvalid писал(а):(....)
Как мы видим, вызывается!!! sub sendStand из Send.pm, и посылаются пакеты встать, это не искаженные пакеты атаки, не надо ля ля, это именно пакеты встать. Или я ошибаюсь!?
Как-то ты слишком сложно подошел к проблеме. Ну.... если ты подозреваешь, что вызывается отчего-то неверная функция... просто засунь в ту функцию message с надписью "привет, я здесь!" - и все станет понятно! 8)
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download

DInvalid
Грамотный
Сообщения: 368
Зарегистрирован: Вт ноя 14, 2006 4:54 pm

Сообщение DInvalid » Сб дек 09, 2006 12:17 pm

piroJOKE писал(а):Оффтопик, бредовая идея.
Перцы, а там нет такой темы, что:
а) мы посылаем синк...
...zzz...
б) мы посылаем атаку...
в) мы посылаем синк...
г-1) "ошибко" - мы посылаем... атаку на основании старого синка?! О_о
г-2) требуется принудительная посылка атаки после синка?! О_о
Кстати похоже
[Dec 9 10:30:40 2006.57] [ 97/100] You attack Monster PecoPeco's Egg (2) - Dmg: 45 (delay 55.2)
10-30-40 - последняя успешная атака
[Dec 9 10:30:44 2006.31] You are sitting.

[Dec 9 10:30:38 2006] Sent Sync
Проблемы начались после посылки этого синка....
[Dec 9 10:30:39 2006] Sent attack by plugin: E5 D2 00 00
[Dec 9 10:30:40 2006] Sent attack by plugin: E5 D2 00 00
Вот отсюда следущие пакеты атаки - проигнорированы (неверные?)
[Dec 9 10:30:41 2006] Sent attack by plugin: E5 D2 00 00
[Dec 9 10:30:42 2006] Sent attack by plugin: E5 D2 00 00
[Dec 9 10:30:43 2006] Sent attack by plugin: E5 D2 00 00
[Dec 9 10:30:44 2006] Sent attack by plugin: E5 D2 00 00

Здесь пришло сообшние что мы сели!?
И начинаем вставать? И уже из за того что пришло сообщение что сели - начнаем посылать пакеты - встать?
Но из за того что пакеты не от того синка... не получается у нас !!!
[Dec 9 10:30:44 2006] Standing by plugin
[Dec 9 10:30:44 2006] Standing by plugin
[Dec 9 10:30:45 2006] Standing by plugin
[Dec 9 10:30:46 2006] Standing by plugin
[Dec 9 10:30:47 2006] Standing by plugin
[Dec 9 10:30:48 2006] Standing by plugin
[Dec 9 10:30:49 2006] Standing by plugin
[Dec 9 10:30:50 2006] Standing by plugin
[Dec 9 10:30:50 2006] Sent Sync
И вот - Синк
[Dec 9 10:30:51 2006] Standing by plugin
И этот пакет - правлиьный
и мы встали...

piroJOKE писал(а):
DInvalid писал(а):(....)
Как мы видим, вызывается!!! sub sendStand из Send.pm, и посылаются пакеты встать, это не искаженные пакеты атаки, не надо ля ля, это именно пакеты встать. Или я ошибаюсь!?
Как-то ты слишком сложно подошел к проблеме. Ну.... если ты подозреваешь, что вызывается отчего-то неверная функция... просто засунь в ту функцию message с надписью "привет, я здесь!" - и все станет понятно! 8)
piroJOKE, она вызывается, 100%.
я не хочу ловит в консоли приветы )
просто есть стандартный debug output в Send.pm в конце каждой функции, но если сообшение формируется плагином, то он не работает

sub sendStand {


sendMsgToServer($r_net, $msg);
debug "Standing\n", "sendPacket", 2;
}
это в стандартной ф-ции, но когда пакеты формирует плагин, то до нее дело не доходит, так как выход происходит тут
sub sendStand {
my $r_net = shift;
my $msg;

my %args;
$args{flag} = 3;
Plugins::callHook('packet_pre/sendStand', \%args);
if ($args{return}) {
sendMsgToServer($r_net, $args{msg});
return;
}

что не есть хорошо, так как отладочные сообшения не формируются.

поэтому целесообразно сделать так
sub sendStand {
my $r_net = shift;
my $msg;

my %args;
$args{flag} = 3;
Plugins::callHook('packet_pre/sendStand', \%args);
if ($args{return}) {
sendMsgToServer($r_net, $args{msg});
debug "Standing by plugin\n", "sendPacket", 2;
return;
}
и пользоваться стандартным debug

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

Сообщение kLabMouse » Сб дек 09, 2006 1:00 pm

DInvalid
И так скажу тебе своё виденье проблемы.
На ранних стадиях, когда ещё ропп был чёть-ли не весь на асме, был такой прикол что тот начинал генерить неправильные пакеты до синхронизации.

Полагалось Что проблема состоит именно в задержке данных от библиотеки (ТЕ идёт запрос на генерацию пакета, а тут бац уже поменлось значения Синка пока мы генерим).

Но видимо проблема спрятана более глубоко если всё-таки пишет
Standing by plugin
ТЕ, данное действие вызывает сама Кор, а не плаг тупит

Скажу Чесно. Я за всё время не набльюдал ни одного глюка. Странно.

Ответить