Протокол, пакеты РО
Модератор: 4epT
Правила форума
Все вопросы по OK не касающиеся плагинов и макросов публикуются в этом разделе.
Перед тем как что то писать, пожалуйста, удостоверьтесь что данная тема не поднималась, вы полностью изучили мануалы по конфигурационным файлам бота и не нашли там решения.
Все вопросы по OK не касающиеся плагинов и макросов публикуются в этом разделе.
Перед тем как что то писать, пожалуйста, удостоверьтесь что данная тема не поднималась, вы полностью изучили мануалы по конфигурационным файлам бота и не нашли там решения.
Протокол, пакеты РО
Пишу своего бота на фришный серв без криптования. Дошел до коннекта к мап серверу и тут застрял. Смотрел через сниффер что посылает клиент - получил такой пакет:
36 04 83 94 1E 00 77 6B 02 00 89 53 00 00 6D 8E 3C 00 00
первые два байта заголовок, дальше
4 байта UncknownID - какойто ключ выцепил его при коннекте к чар серверу хз незнаю что это ну и ладно
4 байта - CharID
4 байта - SessionID1
и дальше непонятные мне 5 байт постоянно меняются
Кто знает помогите. Был бы очень благодарен также за инфу с описанием пакетов.
Пробовал ковырять опенкор но с перлом не оч дружу, да и запутано там все просто жуть...
36 04 83 94 1E 00 77 6B 02 00 89 53 00 00 6D 8E 3C 00 00
первые два байта заголовок, дальше
4 байта UncknownID - какойто ключ выцепил его при коннекте к чар серверу хз незнаю что это ну и ладно
4 байта - CharID
4 байта - SessionID1
и дальше непонятные мне 5 байт постоянно меняются
Кто знает помогите. Был бы очень благодарен также за инфу с описанием пакетов.
Пробовал ковырять опенкор но с перлом не оч дружу, да и запутано там все просто жуть...
-
- Разработчик
- Сообщения: 819
- Зарегистрирован: Пн окт 27, 2008 9:49 pm
Re: Протокол, пакеты РО
В openkore структура пакетов и их обработка располагаются в src/Network/Receive, src/Network/Send. Можно ещё в eAthena искать их.
Код: Выделить всё
$ grep -r 0436 .
...
./Network/Send/ServerType0.pm: '0436' => ['map_login', 'a4 a4 a4 V C', [qw(accountID charID sessionID tick sex)]],
...
Код: Выделить всё
# Network/Send.pm
sub sendMapLogin {
...
$msg = $self->reconstruct({
switch => 'map_login',
accountID => $accountID,
charID => $charID,
sessionID => $sessionID,
tick => getTickCount,
sex => $sex,
});
Код: Выделить всё
$ grep -A 10 -r 'sub getTickCount' .
./Utils.pm:sub getTickCount {
./Utils.pm- my $time = int(time()*1000);
./Utils.pm- if (length($time) > 9) {
./Utils.pm- return substr($time, length($time) - 8, length($time));
./Utils.pm- } else {
./Utils.pm- return $time;
./Utils.pm- }
./Utils.pm-}
./Utils.pm-
./Utils.pm-sub inRange {
./Utils.pm- my $value = shift;
Re: Протокол, пакеты РО
Спасибо, прошел дальше получил следующие пакеты, отправил
map_loaded 007D
и тут опять трабла
клиент отправляет вот это:
60 03 9A 4D D8 00
искал во всех сервертипах 0360 не нашел:(
map_loaded 007D
и тут опять трабла
клиент отправляет вот это:
60 03 9A 4D D8 00
искал во всех сервертипах 0360 не нашел:(
Re: Протокол, пакеты РО
АЕЕЕЕЕЕ!! залогинился))) без этого пакета, палевно конечно...
Шас буду обучать свое детище:)
Шас буду обучать свое детище:)
- 4epT
- macro-маньячина
- Сообщения: 2792
- Зарегистрирован: Чт дек 21, 2006 1:23 pm
- Сервер RO:: 4game
- Discord: ya4ept#8494
- Контактная информация:
Re: Протокол, пакеты РО
прям уверен что залогинился??
не выкидывает сразу?
не выкидывает сразу?
-
- Разработчик
- Сообщения: 819
- Зарегистрирован: Пн окт 27, 2008 9:49 pm
Re: Протокол, пакеты РО
Используй последнюю версию openkore и поиск по всем файлам, 0360 - sync (sendSync) в последних kRO типах.Rzone писал(а):искал во всех сервертипах 0360 не нашел
Вот ещё файл из eA, на основе которого, видимо, и сделаны kRO типы: https://code.google.com/p/eathena-proje ... ket_db.txt
Re: Протокол, пакеты РО
Отловил почти все критические ошибки, боты бегают фармят, летают в город бафаются складывают шмот на склад и гильд склад, кузнец точит шмот на макросе, я дрыхну:)
Хотелось бы немного улучшить алгоритм поиска цели. Как опенкор определяет что цель для атаки недоступна? Ну за стенкой моб стоит.
Я это реализовал очень неудачно, пробовал алгоритм видимости брезенхема но чтото глючно получилось и тормознуто, удалил, сделал таймаут на атаку: если цель не умирает в течении 7 секунд - значит считается недоступной и помечается как недоступная в списке мобов. Есть большой минус - в застроеных локах где одни стены и много мобов это сильно тормозит фарм. Бот стоит постоянно втыкает 7 секунд, меньше низя - не успевает добивать доступных мобов.
Вобщем хотелось бы спросить у гуру если знаете, как в опенкоре проверяется видимость и доступность моба для атаки?
Хотелось бы немного улучшить алгоритм поиска цели. Как опенкор определяет что цель для атаки недоступна? Ну за стенкой моб стоит.
Я это реализовал очень неудачно, пробовал алгоритм видимости брезенхема но чтото глючно получилось и тормознуто, удалил, сделал таймаут на атаку: если цель не умирает в течении 7 секунд - значит считается недоступной и помечается как недоступная в списке мобов. Есть большой минус - в застроеных локах где одни стены и много мобов это сильно тормозит фарм. Бот стоит постоянно втыкает 7 секунд, меньше низя - не успевает добивать доступных мобов.
Вобщем хотелось бы спросить у гуру если знаете, как в опенкоре проверяется видимость и доступность моба для атаки?
Re: Протокол, пакеты РО
Жаль... а я думал там как-нибудь хитро определяет, думал может от сервера инфа приходит о видимости... Это очень ресурсоемкие алгоритмы.
В общем спасибо EternalHarvest, спасибо 4epT.
В общем спасибо EternalHarvest, спасибо 4epT.