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

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

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

Правила форума
ВНИМАНИЕ: реклама сторонних ботов запрещена! Всякие плюшки - можно :)
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8207
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE » Пн дек 11, 2006 12:21 am

Оффтопик, но по обсуждению первых постов в теме:
piroJOKE писал(а):Я ему пишу: do eval sendSync(\$remote_socket,0) - А оно мне...
[macro] automacro testing triggered.
Can't call method "version" on unblessed reference at
D:/!/!!!!test!!!!/193SVN5168/src/Network/Send.pm line 2698.
...
....
...непонятно, что это значит! :cry:
Ну так вот, в коде send.pm написано:
# Old plugins still send a non-existant $remote_socket. Unless we fix
# this, it'll cause unblessed reference errors and halt openkore.
Нормально вызываются другие функции, а sendSync - почему-то - нет.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download

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

Сообщение kLabMouse » Пн дек 11, 2006 12:25 am

А Так?
do eval \$net->sendSync(0)

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

Сообщение piroJOKE » Пн дек 11, 2006 12:28 am

Эх, парень, где ж ты был, когда мы мучались на второй страничке... :lol:
Да, так работает, всё в порядке! :) Спасибо! :)
debug 2
....
eval \$net->sendSync(0)
Input: eval \$net->sendSync(0)
Sent Sync
Received packet: 007F Handler: received_sync
Received Sync
eval \$net->sendSync(0)
Input: eval \$net->sendSync(0)
Sent Sync
Received packet: 007F Handler: received_sync
Received Sync
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download

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

Сообщение japplegame » Пн дек 11, 2006 11:12 am

Мде, посмотрел логи. Загадочная функция 0E. Уговорили. Я сделаю особую тестовую версию ropp.dll, которая будет подгружать ragexe.exe и вызывать call16 прямо из него. Сразу вопрос о правильности хэш-функций будет решен. Но это только вечером, когда вернусь с работы.

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

Сообщение kLabMouse » Пн дек 11, 2006 1:21 pm

japplegame
Мде. Лугче Уже Кинуть 0Е Функцию на Асме. Как временное решение.

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

Сообщение japplegame » Пн дек 11, 2006 4:57 pm

kLabMouse писал(а):japplegame
Мде. Лугче Уже Кинуть 0Е Функцию на Асме. Как временное решение.
А в друг на асме тоже ашипка в константах? Не, мое решение безошибочно определит есть ли косяк в call16

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

Сообщение kLabMouse » Пн дек 11, 2006 5:25 pm

japplegame
Ну. Дерзай!.
Правда всё роно нужно будет провести тесты по функциям что бы такого не было.

ravenclaw_
Энтузиаст
Сообщения: 66
Зарегистрирован: Вс дек 03, 2006 12:31 pm
Откуда: Москва

Сообщение ravenclaw_ » Пт дек 15, 2006 12:24 pm

Можно поинтересоваться прогрессом в этом направлении? :oops:

Alexandr
Энтузиаст
Сообщения: 53
Зарегистрирован: Чт ноя 16, 2006 12:49 am

Сообщение Alexandr » Пт дек 15, 2006 1:25 pm

ага, а то затупы бота очень уж его палят...

Alexandr
Энтузиаст
Сообщения: 53
Зарегистрирован: Чт ноя 16, 2006 12:49 am

Сообщение Alexandr » Сб дек 16, 2006 4:33 pm

Кстати, интересный момент поймал, когда бот тупо стоит и ничего не делает, если при ОТСУТСТВИИ вингов или кримика, прописать в консоли tele, то бот, после неудачной попытки телепортации, тут же начинает мочить моба...

ravenclaw_
Энтузиаст
Сообщения: 66
Зарегистрирован: Вс дек 03, 2006 12:31 pm
Откуда: Москва

Сообщение ravenclaw_ » Вт дек 19, 2006 12:20 pm

Эх, плакаю. Без принудительной синхронизации что-то серьезное мутить сложно.
Бегал вчера ручками с пристоботом. Ни разу не помер исключительно из-за везения. Из-за рассинхронизации бот перестает юзать скиллы на 10-15 секунд: труба =\
Приходится нарезать вокруг приста круги с красными хп и ждать пока он очнется :cry:
Как в таких условиях мутить ботопатю в серьезное место - ума не приложу = \

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

Сообщение DInvalid » Вт дек 19, 2006 1:07 pm

ravenclaw_ писал(а):Эх, плакаю. Без принудительной синхронизации что-то серьезное мутить сложно.
Бегал вчера ручками с пристоботом. Ни разу не помер исключительно из-за везения. Из-за рассинхронизации бот перестает юзать скиллы на 10-15 секунд: труба =\
Приходится нарезать вокруг приста круги с красными хп и ждать пока он очнется :cry:
Как в таких условиях мутить ботопатю в серьезное место - ума не приложу = \
По моим наблюдениям, это не совсем из за рассинхронизации... вроде как с анти-лаг патчем такое тоже наблюдалось, причем в логах видно, когда идет сбой, синк успешно передан и получен ответ.

Другое дело, что принудительный вызов
eval \$net->sendSync(0)
может переключить используемую ф-ю паддед пакетов;
но вот как определить, что у нас этот глюк, и заставить послать синк - это вопрос.

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

Сообщение kLabMouse » Вт дек 19, 2006 4:11 pm

DInvalid

Вреде Та Функция ето 0E по данным пользователей.
НО мы перед тем как вывести данную тулзу в народ много тестировали, проганяли и сравнивали с оригиналом. Проблем не было.

Видимо прийдётся Ещё разок Серёзно пройтись по всем параметрам и функциям. Хотя Я сам Фулл Тестом не розполагаю.

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

Сообщение DInvalid » Вт дек 19, 2006 8:36 pm

kLabMouse писал(а):DInvalid

Вреде Та Функция ето 0E по данным пользователей.
НО мы перед тем как вывести данную тулзу в народ много тестировали, проганяли и сравнивали с оригиналом. Проблем не было.

Видимо прийдётся Ещё разок Серёзно пройтись по всем параметрам и функциям. Хотя Я сам Фулл Тестом не розполагаю.
Если проблема только в функции 0E, то мы можем, как временное решение данной проблемы, запретить ее использование.

Идея такая: номер ф-ии берется исходя из вплоне поределенных параметров, итак:

sub sendSync {
my $r_net = shift;
my $initialSync = shift;
my $msg;
# XKore mode 1 lets the client take care of syncing.
return if ($r_net->version == 1);

$syncSync = pack("V", getTickCount());
####Добавляем
$func = 0x89 * 0x89;
$func &= 0xFFFFFFFF;
$func += unpack("L1",$syncMapSync);
$func &= 0xFFFFFFFF;
$func += unpack("L1",$syncSync)+3;
$func &= 0xFFFFFFFF;
$func += unpack("L1",$accountID);
$func &= 0xFFFFFFFF;
$func &= 0xF;

if ($func==0xE) { $syncSync = pack("V", getTickCount()+1);}

Далее по тексту

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

Сообщение piroJOKE » Вт дек 19, 2006 9:21 pm

Ха-ха, ловко придумано, DInvalid, зачот! :D
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download

Ответить