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

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

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

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

Сообщение piroJOKE »

Оффтопик, но по обсуждению первых постов в теме:
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 »

А Так?
do eval \$net->sendSync(0)
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Эх, парень, где ж ты был, когда мы мучались на второй страничке... :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 »

Мде, посмотрел логи. Загадочная функция 0E. Уговорили. Я сделаю особую тестовую версию ropp.dll, которая будет подгружать ragexe.exe и вызывать call16 прямо из него. Сразу вопрос о правильности хэш-функций будет решен. Но это только вечером, когда вернусь с работы.
Аватара пользователя
kLabMouse
Профессионал
Сообщения: 4776
Зарегистрирован: Вс ноя 05, 2006 4:32 pm

Сообщение kLabMouse »

japplegame
Мде. Лугче Уже Кинуть 0Е Функцию на Асме. Как временное решение.
japplegame
Профессионал
Сообщения: 272
Зарегистрирован: Вс ноя 05, 2006 2:03 pm

Сообщение japplegame »

kLabMouse писал(а):japplegame
Мде. Лугче Уже Кинуть 0Е Функцию на Асме. Как временное решение.
А в друг на асме тоже ашипка в константах? Не, мое решение безошибочно определит есть ли косяк в call16
Аватара пользователя
kLabMouse
Профессионал
Сообщения: 4776
Зарегистрирован: Вс ноя 05, 2006 4:32 pm

Сообщение kLabMouse »

japplegame
Ну. Дерзай!.
Правда всё роно нужно будет провести тесты по функциям что бы такого не было.
ravenclaw_
Энтузиаст
Сообщения: 66
Зарегистрирован: Вс дек 03, 2006 12:31 pm
Откуда: Москва

Сообщение ravenclaw_ »

Можно поинтересоваться прогрессом в этом направлении? :oops:
Alexandr
Энтузиаст
Сообщения: 53
Зарегистрирован: Чт ноя 16, 2006 12:49 am

Сообщение Alexandr »

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

Сообщение Alexandr »

Кстати, интересный момент поймал, когда бот тупо стоит и ничего не делает, если при ОТСУТСТВИИ вингов или кримика, прописать в консоли tele, то бот, после неудачной попытки телепортации, тут же начинает мочить моба...
ravenclaw_
Энтузиаст
Сообщения: 66
Зарегистрирован: Вс дек 03, 2006 12:31 pm
Откуда: Москва

Сообщение ravenclaw_ »

Эх, плакаю. Без принудительной синхронизации что-то серьезное мутить сложно.
Бегал вчера ручками с пристоботом. Ни разу не помер исключительно из-за везения. Из-за рассинхронизации бот перестает юзать скиллы на 10-15 секунд: труба =\
Приходится нарезать вокруг приста круги с красными хп и ждать пока он очнется :cry:
Как в таких условиях мутить ботопатю в серьезное место - ума не приложу = \
DInvalid
Грамотный
Сообщения: 368
Зарегистрирован: Вт ноя 14, 2006 4:54 pm

Сообщение DInvalid »

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

Другое дело, что принудительный вызов
eval \$net->sendSync(0)
может переключить используемую ф-ю паддед пакетов;
но вот как определить, что у нас этот глюк, и заставить послать синк - это вопрос.
Аватара пользователя
kLabMouse
Профессионал
Сообщения: 4776
Зарегистрирован: Вс ноя 05, 2006 4:32 pm

Сообщение kLabMouse »

DInvalid

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

Видимо прийдётся Ещё разок Серёзно пройтись по всем параметрам и функциям. Хотя Я сам Фулл Тестом не розполагаю.
DInvalid
Грамотный
Сообщения: 368
Зарегистрирован: Вт ноя 14, 2006 4:54 pm

Сообщение DInvalid »

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
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

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