PDA

Просмотр полной версии : MoveBackwardToLocation


0rfin
16.02.2010, 17:23
Сервер Gracia Epilogue протокол 146, Java
Бот L2walker 10.9.8e OOG

В общем при нажатии в боте на карту для перемещения происходит кик бота с сообщением You will be kicked for illegal action, GM informed. Пробывал всякие скрипты типа Fixmove для грации, наверно 2.2, FixInit, FixGP1.3 ничего не помогает.
Решил сравнить пакеты какой отправляет бот и клиент.
Клиент пакет
0F DB 4E 00 00 C7 1F 02 00 76 F2 FF FF 31 4E 00 00 C7 1F 02 00 76 F2 FF FF 01 00 00 00
Расшифровка
Tип: 0x0F (MoveBackwardToLocation)
Pазмер: 29+2
Время прихода: 18:06:40:350
0002 d ToX: 20187 (0x00004EDB)
0006 d ToY: 139207 (0x00021FC7)
000A d ToZ: -3466 (0xFFFFF276)
000E d OrigX: 20017 (0x00004E31)
0012 d OrigY: 139207 (0x00021FC7)
0016 d OrigZ: -3466 (0xFFFFF276)
001A d MoveMovement: 1 (0x00000001)

Бот пакет
0F DB 4E 00 00 C7 1F 02 00 76 F2 FF FF 31 4E 00 00 C7 1F 02 00 76 F2 FF FF
Расшифровка
Tип: 0x0F (MoveBackwardToLocation)
Pазмер: 25+2
Время прихода: 18:16:44:699
0002 d ToX: 20187 (0x00004EDB)
0006 d ToY: 139207 (0x00021FC7)
000A d ToZ: -3466 (0xFFFFF276)
000E d OrigX: 20017 (0x00004E31)
0012 d OrigY: 139207 (0x00021FC7)
0016 d OrigZ: -3466 (0xFFFFF276)

В общем видно, что бот отправляет не полный пакет. Отправил пакет клиентовский с бота через l2ph и бот побежал без кика.

Нужен скрипт который будет ловить пакеты от клиента, исправлять их и посылать к серверу. Сам только начинаю разбираться в скриптах, еще не совсем понимаю логику. Спасибо

Наверно, что то типа такого надо написать

begin
if FromClient and (ConnectName='CharName')
and (pck=HStr('0F')) then begin
buf:=pck + HStr('01 00 00 00 ');
SendToServerEx('CharName');
pck:='';
end;
end.

alexteam
16.02.2010, 18:14
begin
if pck <> '' then
if fromclient and (pck[1]=#$0F) then
pck := pck + hstr('01000000');
end.

0rfin
16.02.2010, 19:01
Работает! Спасибо alexteam. Получается он прибавляет к любому пакету не достаюище байты?

mOBSCENE
16.02.2010, 19:07
Штранно, что Fixmove не работал, ведь тоже самое делает..)