Вернуться   CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг
Войти через OpenID

Скриптинг Форум посвещенный созданию скриптов для L2PacketHack

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 24.07.2014, 23:06   #1
Новичок
 
Регистрация: 24.07.2014
Сообщений: 8
Сказал Спасибо: 1
Имеет 0 спасибок в 0 сообщенях
CoolNickname пока неопределено
По умолчанию Движение за objectid с задержкой

Добрых времени суток. Начну пожалуй с самого начала. И так, есть игра BSFG 2 (модификация ла2 хроники GoD), в ней есть такая фишка как караван. Происходит это следующим образом. По дефолтному маршруту от аванпоста к городу движется повозка, твоя задача бежать рядом с повозкой и в случае нападения мобов на повозку - убивать их. Мобы нападают всегда рандомно, могут вообще не напасть.
На серве стоит шифрация, но побегав с бубном возле phx добился того, что нужные для перемещения чара пакеты приходят нормально.
А приходят собственно такие пакеты:
От клиента:
Action - 1F B9 D4 70 48 0C A9 FF FF 2B 03 01 00 DC F1 FF FF 00 приходит когда берешь в таргет, из него можно узнать objectid.
MoveBackwardToLocation
ValidatePosition
От сервера приходят очень карявые пакеты, но методом тыка узнал что пакет: 0E 01 25 70 49 00 00 00 00 00 00 00 00 02 00 00 00 0A 00 00 00 06 0B 00 00 09 00 00 00 D5 09 00 00 приходит когда рядом с тобой кто-нибудь движется(даже мобы), в этом пакете:
01 25 70 49 - objectid
0B 00 00 09 - x
00 00 00 D5 - y
D5 09 00 00 - z
(Хотя может вообще и не прийти, когда друг рядом бегал минут 5, ни одного пакета не пришло, а как другие бегают, то их валом приходит )
Теперь вот нужно имея эти пакеты сделать скрипт, что бы мой чар бежал за караваном, но на некотором расстоянии, ибо если просто прицепиться, то тебя будет откидывать от каравана все дальше и дальше. Предполагалось сделать так, что бы координаты чара отставали от координат каравана на 5 секунд.
Моя логика для этого скрипта такова:
1)Узнаем objectid каравана.
2)Далее отлавливаем синие пакеты 0E с нужным objectid и вытягиваем из них координаты.
3)Теперь или отлавливать этот пакет раз в 5 сек или придумать иной способ(что бы была задержка) и составлять пакет MoveBackwardToLocation с нужными для нас координатами.
Помогите кто чем сможет в этом деле пожалуйста)

Выяснил что пакет 0E 01 25 70 49 00 00 00 00 00 00 00 00 02 00 00 00 0A 00 00 00 06 0B 00 00 09 00 00 00 D5 09 00 00 приходит когда кто-то начинает атаковать таргет. Теперь узнать координаты каравана не получится( Других пакетов с информацией о таргете не приходит(

Последний раз редактировалось CoolNickname, 25.07.2014 в 00:10. Причина: Причина прихода пакета 0E
CoolNickname вне форума   Ответить с цитированием
Старый 25.07.2014, 00:17   #2
Местный
 
Аватар для Antharas
 
Регистрация: 26.11.2012
Сообщений: 207
Сказал Спасибо: 23
Имеет 18 спасибок в 18 сообщенях
Antharas пока неопределено
По умолчанию

в линейке есть пакет "начал движение" и остановился. Твой друг бегал видимо не останавливаясь.

а это как расчитывать координаты для точки чтобы подбежать к объекту. Код для другого робота но разберешься.
http://coderx.ru/showpost.php?p=192045&postcount=856
__________________
lllllllllllllllllll
Antharas вне форума   Ответить с цитированием
За это сообщение Antharas нажился спасибкой от:
Старый 25.07.2014, 01:04   #3
Новичок
 
Регистрация: 24.07.2014
Сообщений: 8
Сказал Спасибо: 1
Имеет 0 спасибок в 0 сообщенях
CoolNickname пока неопределено
По умолчанию

Цитата:
Сообщение от Antharas Посмотреть сообщение
в линейке есть пакет "начал движение" и остановился.
http://coderx.ru/showpost.php?p=192045&postcount=856
Тут проблема в том что бы найти этот пакет, я думал можно будет вытянуть координаты из пакета на таргет, но там только твои координаты.

За расчет координат спасибо)
CoolNickname вне форума   Ответить с цитированием
Старый 26.07.2014, 13:40   #4
Новичок
 
Регистрация: 24.07.2014
Сообщений: 8
Сказал Спасибо: 1
Имеет 0 спасибок в 0 сообщенях
CoolNickname пока неопределено
По умолчанию

Думаю хорошим тоном будет выложить готовый скрипт.
Код:
Var
CharID: Integer;
X,Y,Z: Integer;

//говорилка
Procedure Say(msg:string);
begin
    buf:=#$4A;
    WriteD(0);
    WriteD(10);
    WriteS('');
    WriteS(msg);
    SendToClient;
end;


//запись таргета каравана
begin
  if FromClient and (ConnectName='InisTrue') 
  and (pck[1]= #$1F) then begin
    CharId:=ReadD(2);
    Say('Таргет каравана записан: '+ IntToStr(CharId));   
  end;
  
if FromServer and (ConnectName='InisTrue') 
  and (pck[1]= #$01) and (ReadD(2) = CharID) then begin 
   X:= (ReadD(6));
   Y:= (ReadD(10));
   Z:= (ReadD(14));
   buf:= #$0F;
   WriteD(X);
   WriteD(Y);
   WriteD(Z);
   WriteC(00);
   SendToServer;
   end;

end.
CoolNickname вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 02:58.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!