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

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

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

Правила форума
ВНИМАНИЕ: реклама сторонних ботов запрещена! Всякие плюшки - можно :)
DInvalid
Грамотный
Сообщения: 368
Зарегистрирован: Вт ноя 14, 2006 4:54 pm

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

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

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

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

Скажу Чесно. Я за всё время не набльюдал ни одного глюка. Странно.
Хуже того, может быть это однвременно глюк и плагина и Коры
Можеть быть такое?

[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:39 2006.45] [ 97/100] You attack Monster PecoPeco's Egg (2) - Dmg: 46 (delay 55.2)
этот пакет правильный - атакуем

[Dec 9 10:30:40 2006] Sent attack by plugin: E5 D2 00 00
[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: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.31] You are sitting.
Последний пакет мог вопринятся сервером как пакет - сесть и от сервера пришло сообщение что мы сели.

[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.18] You are standing.

Как выяснить - были ли посланы неверные пакеты? По дампу пакетов сможете определить ?

Аватара пользователя
Jerry
Профессионал
Сообщения: 1047
Зарегистрирован: Сб ноя 04, 2006 12:26 pm
Контактная информация:

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

сможем

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

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

Видимо всё таки беда Внутри.
И так. Прикрути пожалуста Ету Маленькую Штучку туда куда надо.
sub SetHashData {
SetAccountId(unpack("L1",$accountID));
SetMapSync(unpack("L1",$syncMapSync));
SetSync(unpack("L1",$syncSync));

my $func;
$func = 0x89 * 0x89;
$func &= 0xFFFFFFFF;
$func += unpack("L1",$syncMapSync);
$func &= 0xFFFFFFFF;
$func += unpack("L1",$syncSync);
$func &= 0xFFFFFFFF;
$func += unpack("L1",$accountID);
$func &= 0xFFFFFFFF;
$func &= 0xF;
message "Using Function [".getHex(pack("C", $func))."] AccID: [".getHex($accountID)."] MapSync: [".getHex($syncMapSync)."] Sync: [".getHex($syncSync)."]\n";
}
Етот маленький алгоритсм определяет которая из криптофункций будет вызыватся. И с какими параметрами.

И ПЛЗ. АссАйди даш потом, иначе будут неприятности если ето заметят лАгГейма админы.

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

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

kLabMouseМодератор, смотри ЛС.

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

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

Господа, это хорошо, что вы обмениваетесь пакетами в ПМ, и всё такое, но я хотел бы, чтобы вы устроили так, чтобы КМ смог воспроизвести эту ошибку на своём компьютере.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download

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

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

piroJOKE писал(а):Господа, это хорошо, что вы обмениваетесь пакетами в ПМ, и всё такое, но я хотел бы, чтобы вы устроили так, чтобы КМ смог воспроизвести эту ошибку на своём компьютере.
Что то не так?
Ну так скажите как надо!?

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

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

КМ, вот ТЫ увидел у себя эти глюки, или всё-таки нет?

"Что то не так?" - я хочу точно убедиться, что ошибка действительно существует, и что это не глюк типа "кофликт версий" или там, кривая настройка...
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download

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

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

Смотри
Using Function [0E] AccID: [xx xx xx xx]
далее, неправильный пакет
и мы сидим.

Видимо Функция 0E Вызывает Глюк. Ето Mysty1 хеш функция. Её для нас дописывал japplegame.
Видимо прийдётся ещё разок её перековырять, там где-то в серединке маленький баг зарылся.

japplegame
Профессионал
Сообщения: 272
Зарегистрирован: Вс ноя 05, 2006 2:03 pm

Сообщение japplegame » Сб дек 09, 2006 6:16 pm

kLabMouse писал(а):Смотри
Using Function [0E] AccID: [xx xx xx xx]
далее, неправильный пакет
и мы сидим.

Видимо Функция 0E Вызывает Глюк. Ето Mysty1 хеш функция. Её для нас дописывал japplegame.
Видимо прийдётся ещё разок её перековырять, там где-то в серединке маленький баг зарылся.
Ну а как ты объяснишь, что эта функция, как и все остальные, не давала сбоев на сотнях тысячах тестов? На вход подавались рандомные значения. И сравнивались результаты функции в эмуляторе и прямо в ragexe. А у вас тут ошибки возникают гораздо чаще.
Во-первых, чтобы достоверно утверждать об ошибке в функции 0E нужно собрать хотябы несколько десятков сбойных пакетов и посмотреть действительно ли все время сбой на этой функции. А сколько таких пакетов у вас?

japplegame
Профессионал
Сообщения: 272
Зарегистрирован: Вс ноя 05, 2006 2:03 pm

Сообщение japplegame » Сб дек 09, 2006 6:23 pm

Кстати, у меня подобных глюков в 1.6.9 нет.
Правда у меня очень хороший коннект с рРО.
Я подозреваю, что виновата все-таки рассинхронизация из-за лагов. Я подумаю на досуге, как с этим бороться.

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

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

japplegame
Я щас отправлю тебе лог. Сам посмотриш. Что-то там не так. Я спецом дал код для того чтобы видеть которая с функций сплоховала.
Прийдётся проганять ещё и ещё.... странное выходит.

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

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

japplegame

У меня тоже таких Глюков не наблюдалось. Видимо что-то не так. ХЗ-ХЗ.

japplegame
Профессионал
Сообщения: 272
Зарегистрирован: Вс ноя 05, 2006 2:03 pm

Сообщение japplegame » Сб дек 09, 2006 6:40 pm

kLabMouse писал(а):japplegame
Я щас отправлю тебе лог. Сам посмотриш. Что-то там не так. Я спецом дал код для того чтобы видеть которая с функций сплоховала.
Прийдётся проганять ещё и ещё.... странное выходит.
А чего тут странного? В ПМке один единственный сбойный пакет, и то что там именно функция 0E ни о чем не говорит. Сбойнул бы другой синк могла бы оказаться любая другая функция.
ИМХО, тот самый злополучный синк просто не дошел до сервера.
Надо подумать и изучить как офф-клиент борется с подобными вещами и сделать аналогично.

P.S. Кстати довольно легко встроить в ropp.dll систему записи логов в какой-нибудь файл. Я могу это сделать, но, думаю проблему надо искать не в dll вообще.

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

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

piroJOKE писал(а):КМ, вот ТЫ увидел у себя эти глюки, или всё-таки нет?

"Что то не так?" - я хочу точно убедиться, что ошибка действительно существует, и что это не глюк типа "кофликт версий" или там, кривая настройка...
Конфликт каких версий? Конфликт какой настройки?
Какие вам нужны файлы?

Могу выложить лог за 4 часа.
Объем в архиве - 500 кб
Там много сбоев, и всегда около них используется одна и та же функция.
Канал 4 МБ\с.
Лаги - есть.

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

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

japplegame
Давай Так. Присвоим последнее значение для $syncSync только тогда когда получим ответ на пакет Синка. Тогда думаю проблема будет решена.
Если нет. То прийдётся по жёсткому пройтись во функции 0E

Ответить