Апдейт 06-06-07, codename 'Moskovia'

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

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

Правила форума
ВНИМАНИЕ: реклама сторонних ботов запрещена! Всякие плюшки - можно :)
genry
Начинающий
Сообщения: 15
Зарегистрирован: Вт май 29, 2007 10:56 pm

Сообщение genry »

Вот апдейт для 1.6.9

http://slil.ru/24481747

сделан по анологии с 1.9.4 СВН, но к сожелению не работают 2 вещи:

sendMove
sendItemUse

Совершенно не понятно, почему все остальные функции работают замечательно, а эти 2 нет, правилось все по одному и тому же принципу :( Просьба помочь с ними.

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

Сообщение piroJOKE »

Проверь снифером, что посылает твоя 1.6.9 на самом деле.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
japplegame
Профессионал
Сообщения: 272
Зарегистрирован: Вс ноя 05, 2006 2:03 pm

Сообщение japplegame »

Все просто. В 1.6.9 неправильно формируются координаты. Там старый вариант, а новый не реализован.
Вот тебе файлик Utils.pm с исправленным вариантом функции getCoordString. Замени и будет тебя щастье.
А еще я сильно сомневаюсь, что у тебя будет работать XKore.
Вложения
Utils.zip
(10.54 КБ) 141 скачивание
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Ну не то чтоб совсем неправильно, имхо оно просто лишний байт лепит в начало, зачем-то...
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Аватара пользователя
4epT
macro-маньячина
Сообщения: 2792
Зарегистрирован: Чт дек 21, 2006 1:23 pm
Сервер RO:: 4game
Discord: ya4ept#8494
Контактная информация:

Сообщение 4epT »

не потеме..
1.6.9. это вообще круто! Как слышу эти цифорки.. так настальгия прёт.. когда никаких форумов (не считая америкосовского)..всё своими ручками..

РЕСПЕКТ 1.6.9 :Rose:
Быстро и качественно напишу конфиг (макрос)! Стучи!
¤ Свежий бот ¤ Config checker ¤ Manual ¤
Изображение
Изображение
genry
Начинающий
Сообщения: 15
Зарегистрирован: Вт май 29, 2007 10:56 pm

Сообщение genry »

да фтопку хкоре) спасибо большое)
japplegame
Профессионал
Сообщения: 272
Зарегистрирован: Вс ноя 05, 2006 2:03 pm

Сообщение japplegame »

piroJOKE писал(а):Ну не то чтоб совсем неправильно, имхо оно просто лишний байт лепит в начало, зачем-то...
В том-то и дело, что совсем неправильно, точнее старым способом. Более поздние версии сервера пакуют координаты в три байта, а старые в четыре. Алгоритмы совершенно разные.
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

japplegame
Ой ли?
sub getCoordString {
my $x = int(shift);
my $y = int(shift);
my $nopadding = shift;
my $coords = "";

shiftPack(\$coords, 0x44, 8)
unless (($config{serverType} == 0) || ($config{serverType} == 3) || ($config{serverType} == 5) || $nopadding);
shiftPack(\$coords, $x, 10);
shiftPack(\$coords, $y, 10);
shiftPack(\$coords, 0, 4);

return $coords;
}
Как ты думаешь, сдвиг первого байта на 8 бит(!)... это принципиальная разница в алгоритме? ;)

Дело в том что я недавно игрался nopadding и сниффером, и был удивлен чудесной разницей в алгоритмах. :)
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Уточнение. Я спецом поднял разные по возрасту варианты этой фунции, ну и подсунул им одни и те же координаты. Вот что они вернули:

__ 1E D7 B0 <--- Kore kRO v0.48 (2новички: это самый первый бот для RO)
44 1E D7 B0 <--- совремеменная OpenKore, вызов с "1"
__ 1E D7 B0 <--- совремеменная OpenKore, вызов с "0"
__ 1E D7 B0 <--- OpenKore 1.6.x, для сервер-тайпов 0, 3 и 5 (а у афтара другой сервертайп, ке-ке-ке)
44 1E D7 B0 <--- OpenKore 1.6.x для всех остальных сервертайпов (вот проблема афтара! наша функция в sT-13, ждет 3 байта).

PS: Все исходники могу предоставить.
Последний раз редактировалось piroJOKE Чт июн 07, 2007 9:12 pm, всего редактировалось 6 раз.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
japplegame
Профессионал
Сообщения: 272
Зарегистрирован: Вс ноя 05, 2006 2:03 pm

Сообщение japplegame »

Дык в старой версии (оригинальной 1.6.9), даже такого аргумента нет $nopadding
Там всего два аргумента.
Последний раз редактировалось japplegame Чт июн 07, 2007 7:57 pm, всего редактировалось 1 раз.
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Обновил пост. Смотри выше. :) (Забавно: оригинальная "Кора" работает "правильно" изначально :D )
Моя теория, откуда это взялось: в старые времена junk-и были дикостью (они и щас дикость, но... привычная).
Поэтому лишний байт показался чувакам в те времена чем-то "этаким". И появился в функции.
japplegame писал(а):Дык в старой версии (...) даже такого аргумента нет $nopadding, Там всего два аргумента.
Все верно, там его роль играет сам сервер-тайп. См. маю теорию выше. ;)
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
japplegame
Профессионал
Сообщения: 272
Зарегистрирован: Вс ноя 05, 2006 2:03 pm

Сообщение japplegame »

Не понимаю, честно говоря, о чем спор?
То ли ты пытаешься доказать, что три байта и четыре это одно и тоже, то ли еще что-то, мне непонятно.
Но я знаю точно, что 1.6.9 неправильно создает координаты и поэтому пакет не работает.
Ибо я эти эксперименты с nopadding проводил еще, когда первый раз прикрутил ropp к 1.6.9, тогда же я внес изменения в Utils.pm, который по сей день прекрасно работает для всех типов серверов.
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение piroJOKE »

Фух-фух. Существенная часть в них правильная. ;) И на своем месте.
Я скажем, мог бы написать в sT-13 такое:

- $msg = pack("C*", 0xF7, 0x00) . pack("x8") . getCoordString($x, $y, 1) . pack("x6");
+ $msg = pack("C*", 0xF7, 0x00) . pack("x7") . getCoordString($x, $y, 0) . pack("x6");

....и у афтара бы все заработало. :D

"три байта и четыре это одно и тоже" - пардон! -
japplegame писал(а):Алгоритмы совершенно разные.
- вот это и есть причина спора; я тоже так когда-то думал - а на самом деле алгоритм тот же. Ну.... ставля точку: это не "другой алгоритм", это просто историческое недоразумение. :)

PS: Против твоего утильза.пм ничего не имею.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
genry
Начинающий
Сообщения: 15
Зарегистрирован: Вт май 29, 2007 10:56 pm

Сообщение genry »

Нехотелось бы мешать вашему спору, но к сожелению ни первый (замена Utils) ни второй вариант (Utils старые, другая строчка) не работают. :lol: Не вылетает с ними, но и идти тоже не хочет.
Использовние предметов работает.
genry
Начинающий
Сообщения: 15
Зарегистрирован: Вт май 29, 2007 10:56 pm

Сообщение genry »

К сожелению я новичек в этом деле, поэтому прошу помочь разобраться. вот что дал сниффер (движение 263, 269 -> 262, 269)

Клиент

1 ***.***.***.***:2245 81.177.13.19:5000 19 Send
0000 F7 00 37 38 36 63 62 35 37 00 41 90 D0 65 36 33 ..786cb57.A..e63
0010 66 61 00 fa.

2 81.177.13.19:5000 ***.***.***.***:2245 12 Recv
0000 87 00 F1 71 54 0A 41 D0 D4 19 0D 88 ...qT.A.....

консоль (piroJOKE)


1 ***.***.***.***:2252 81.177.13.19:5000 19 Send
0000 F7 00 00 00 00 00 00 00 00 44 43 40 00 00 00 00 .........DC@....
0010 00 00 00

консоль (japplegame)


1 ***.***.***.***:2252 81.177.13.19:5000 19 Send
0000 F7 00 00 00 00 00 00 00 00 44 43 40 00 00 00 00 .........DC@....
0010 00 00 00
Закрыто