принудительная синхронизация / проблемы синхронизации / PP
Модератор: 4epT
Правила форума
ВНИМАНИЕ: реклама сторонних ботов запрещена! Всякие плюшки - можно
ВНИМАНИЕ: реклама сторонних ботов запрещена! Всякие плюшки - можно

-
- Профессионал
- Сообщения: 272
- Зарегистрирован: Вс ноя 05, 2006 2:03 pm
Итак, вот наваял кое-что для борьбы с лагами. Тупить и стоять из-за лагов бот иногда будет, но по задумке не долго (как во время лага при обычной игре в оригинальном клиенте). Кроме того даже при тупизме, бот не будет страдать фигней вроде сидения/вставания вместо атаки.
На данный момент патчик только для 1.6.9 (ставим поверх версии уже пропатченной для поддержки ropp.pl), потестим, если будет все ок, сделаю и для 1.9.3.
Внимательно смотрим в консоль. При десинхронизации будут появляться желтые предупреждения вида:
Out of sync: XXX packet is not sent.
По идее, чем сильнее лаги, тем больше таких предупреждений должно быть, но бот все равно не должен тупить. Очень удобно наблюдать в режиме XKore. У меня такие сообщения выскакивали редко по одному или по два подряд, но бот вроде вел себя пристойно.
На данный момент патчик только для 1.6.9 (ставим поверх версии уже пропатченной для поддержки ropp.pl), потестим, если будет все ок, сделаю и для 1.9.3.
Внимательно смотрим в консоль. При десинхронизации будут появляться желтые предупреждения вида:
Out of sync: XXX packet is not sent.
По идее, чем сильнее лаги, тем больше таких предупреждений должно быть, но бот все равно не должен тупить. Очень удобно наблюдать в режиме XKore. У меня такие сообщения выскакивали редко по одному или по два подряд, но бот вроде вел себя пристойно.
- Вложения
-
- ropp_anti_lag_patch_1.6.9.zip
- Распаковывать в корень версии уже пропатченной под ropp.pl
- (101.16 КБ) 141 скачивание
japplegame
Я вижу исправления в Send.pm,
может быть тогда внесете и вывод debug информации, которая в случае формирования пакета плагинами не выводится.
Например в конце ф-ции sub sendStand есть вывод debug
sendMsgToServer($r_socket, $msg);
debug "Standing\n", "sendPacket", 2;
А если плагин перехватывает вывод то такого нет, поэтому предлагаю добавить
if ($args{return}) {
if($syncSyncReceived) {
sendMsgToServer($r_socket, $args{msg});
debug "Standing by plugin\n", "sendPacket", 2;
}
else {
warning "Out of sync: Stand packet is not sent. \n";
AI::dequeue();
}
Я вижу исправления в Send.pm,
может быть тогда внесете и вывод debug информации, которая в случае формирования пакета плагинами не выводится.
Например в конце ф-ции sub sendStand есть вывод debug
sendMsgToServer($r_socket, $msg);
debug "Standing\n", "sendPacket", 2;
А если плагин перехватывает вывод то такого нет, поэтому предлагаю добавить
if ($args{return}) {
if($syncSyncReceived) {
sendMsgToServer($r_socket, $args{msg});
debug "Standing by plugin\n", "sendPacket", 2;
}
else {
warning "Out of sync: Stand packet is not sent. \n";
AI::dequeue();
}
-
- Профессионал
- Сообщения: 272
- Зарегистрирован: Вс ноя 05, 2006 2:03 pm
Легко. На данный момент на форуме всего два патча для 1.6.9. Первый и вот этот. Как только потестим оба патча склеим в одну кучу и можно будет выложить в DownloadspiroJOKE писал(а):Оффтопик.
Куски патчей под 1.6.9 разбросаны по разным темам.
Поиск у нас так и не работает по-человечески.
Фиг его знает, как всё это от 1.6.9 собрать в одну кучу.
-
- Профессионал
- Сообщения: 272
- Зарегистрирован: Вс ноя 05, 2006 2:03 pm
Ну мысль, в принципе, здравая. Так и сделаем в окончательном варианте. Ты главное тестируйDInvalid писал(а):japplegameЯ вижу исправления в Send.pm,
может быть тогда внесете и вывод debug информации, которая в случае формирования пакета плагинами не выводится.
Например в конце ф-ции sub sendStand есть вывод debug
sendMsgToServer($r_socket, $msg);
debug "Standing\n", "sendPacket", 2;
А если плагин перехватывает вывод то такого нет, поэтому предлагаю добавить
if ($args{return}) {
if($syncSyncReceived) {
sendMsgToServer($r_socket, $args{msg});
debug "Standing by plugin\n", "sendPacket", 2;
}
else {
warning "Out of sync: Stand packet is not sent. \n";
AI::dequeue();
}


Последний раз редактировалось japplegame Вс дек 10, 2006 3:19 pm, всего редактировалось 1 раз.
- piroJOKE
- Модератор
- Сообщения: 8205
- Зарегистрирован: Сб ноя 04, 2006 2:20 am
- Сервер RO:: localhost
- Откуда: Molvania
Оффтопик, 2JA:
Это еще не всё. Я ж писал, что там надо апдейтить будет карты/скиллы/вещи/порталы... короче всё, что успело за год (или уже больше прошло?) устареть. ((
Оффтопик:
Это еще не всё. Я ж писал, что там надо апдейтить будет карты/скиллы/вещи/порталы... короче всё, что успело за год (или уже больше прошло?) устареть. ((
Оффтопик:
Кстати, а как можно сымитировать лаги / медленный / хреновый коннект?japplegame писал(а): у меня лагов практически нет, а имитировать их я не умею.
-
- Профессионал
- Сообщения: 272
- Зарегистрирован: Вс ноя 05, 2006 2:03 pm
Да, но это не имеет никакого отношения к "кускам патчей под 1.6.9"piroJOKE писал(а):Оффтопик, 2JA: Это еще не всё. Я ж писал, что там надо апдейтить будет карты/скиллы/вещи/порталы... короче всё, что успело за год (или уже больше прошло?) устареть. ((

Последний раз редактировалось japplegame Вс дек 10, 2006 3:21 pm, всего редактировалось 1 раз.
-
- Профессионал
- Сообщения: 272
- Зарегистрирован: Вс ноя 05, 2006 2:03 pm
Тестировать то я буду на 1.9.3, поэтому сейчас буду разбираться где что надо править - этот патч ведь для 1.6.9 ?japplegame писал(а):Ну мысль, в принципе, здравая. Так и сделаем в окончательном варианте. Ты главное тестируй. А то у меня лагов практически нет, а имитировать их я не умею
.
При тестировании ведь нельзя менять ничего кроме собственно тестируемого места, поэтому менять версию нельзя )
2 piroJOKE
Взять какой нибудь анализатор/редактор пакетов, и каждый 100 +- 10 пакет синка убивать или модифицировать...Кстати, а как можно сымитировать лаги / медленный / хреновый коннект?
Медленный коннект - подключится через прокси с возможностью упраялять трафиком или другим способом делать шейпинг траффика, задать ограничение 32 кбит/с...
-
- Профессионал
- Сообщения: 272
- Зарегистрирован: Вс ноя 05, 2006 2:03 pm
Тогда не парься, сейчас я набросаю для 1.9.3.DInvalid писал(а):Тестировать то я буду на 1.9.3, поэтому сейчас буду разбираться где что надо править - этот патч ведь для 1.6.9 ?
При тестировании ведь нельзя менять ничего кроме собственно тестируемого места, поэтому менять версию нельзя )
Там чать исправлений надо перенести в Received.pm
Спасибо =)japplegame писал(а):Тогда не парься, сейчас я набросаю для 1.9.3.DInvalid писал(а):Тестировать то я буду на 1.9.3, поэтому сейчас буду разбираться где что надо править - этот патч ведь для 1.6.9 ?
При тестировании ведь нельзя менять ничего кроме собственно тестируемого места, поэтому менять версию нельзя )
Там чать исправлений надо перенести в Received.pm
Как только - так сразу перезапущу и буду собирать статитику заново =)
japplegame
Обясни ПЛЗ. Почему Тот метод что Я предложил не катит?
Насколько Я понял. Весь прикол в том. Что после отсылки синка есть задержка со стороны сервера, А мы пытаемся отправить Паддед пока Сервак не захавал новый синк, И получается что пакет уже новый, а Синк Старый пока остался.
Насколько я копался в Афине, там прикол, на паддеды значение синка присваивается сразу-же когда отсылается сервером ответ.
ТЕ, Пришёл ответ, применим новый синк. Пока не пришёл, задерживаем пакеты.
Обясни ПЛЗ. Почему Тот метод что Я предложил не катит?
Насколько Я понял. Весь прикол в том. Что после отсылки синка есть задержка со стороны сервера, А мы пытаемся отправить Паддед пока Сервак не захавал новый синк, И получается что пакет уже новый, а Синк Старый пока остался.
Насколько я копался в Афине, там прикол, на паддеды значение синка присваивается сразу-же когда отсылается сервером ответ.
ТЕ, Пришёл ответ, применим новый синк. Пока не пришёл, задерживаем пакеты.
-
- Профессионал
- Сообщения: 272
- Зарегистрирован: Вс ноя 05, 2006 2:03 pm
Вот это подходит, так я и сделал. Именно не отправляем пакеты вообще, а не отсылаем со старым синком, как ты предложил в начале.kLabMouse писал(а):japplegameПока не пришёл, задерживаем пакеты.
Мы об этом говорили наверное с месяц назад в асе, если помнишь. Только не реализовывали.
Вот аналогичный патч для 1.9.3
К счастью обошлось без исправлений в CoreLogic.pm