Привет всем. вот уже месяц почти изучаю л2пх, скриптописание в игре айон, очень часто шарюсь по разделам л2, беру примеры скриптов, нашел как в таймере отправлять пакеты с задержкой со скрипта Дуни ( вроде правильно ) точней как кто-то его назвал с его быдло-скрипта
много всего для себя открыл, конешно понимаю что мои знания мизерные, читаю учебник паскаля. ну щас не об этом!
в айоне, да я думаю и в л2, множество пакетов, но некоторые идеи нельзя реализовать с помощью только пакетов, например мне интересно, как объяснить скрипту, что у меня мало хп и надо пить банку или, когда рядом игрок написать мне в пм об этом...этих данных нет в пакетах, по крайней мере я так думаю с моими знаниями, хочу узнать, как это узнавать и от куда брать данные, да еще и л2пх об этом объяснить, надеюсь на ваши посты без сорказма и иронии, мне действительно это интересно, хочу развиваться в этом и не останавливаться на скриптах по замене пакетов или таймере.
спасибо что указал, буду изучать пакеты! я так понимаю из пакетов можно извлечь эту информацию о моем хп например, то есть перевести байты и увидеть число и указать, что если число будет меньше, надо послать определенный пакет?
//by 6yDDucT, modified NLObP//автоматическое использование НР пробирок// 1-Изменяем Leader='NLObP';// 2-в конце скрипта изменить кол-во ХП при котором начнется пьянка.// 3-бросаем и подбираем Heal Potion или выпиваемconst
Leader='NLObP';
var MyID:Word;
OID:String;
timerHP: TTimer;
//все сообщения ботов в чате патилидера//видны только намprocedure Say(msg:string);
begin//buf:=#$4A#0#0#0#0;
buf:=hstr('4A 00 00 00 00');
WriteD(2);
WriteS(ConnectName);
WriteS(msg);
SendToClientEx(Leader);
end;
procedure OnTimerHP(Sender: TObject);
begin
buf:=#$14+OID+#$00#$00#$00#$00;
SendToServerEx(Leader);
end;
//******************************************************************************// Вызывается при включении скрипта//******************************************************************************procedure Init;
begin
timerHP:=TTimer.Create(nil);
timerHP.OnTimer:=@OnTimerHP; //
timerHP.enabled:=false; //
timerHP.interval:=15000; //время отката леченияend;
//******************************************************************************// Вызывается при выключении скрипта//******************************************************************************procedure Free;
begin
timerHP.Free;
end;
//******************************************************************************// Вызывается при приходе каждого пакета, если скрипт включен//******************************************************************************beginif FromServer and(pck[1]=#$27)and(ReadD(12)=1061)thenbegin//1061 - idItem'a который мы хотим юзать, в данном случае Healing Potion
OID:=pck[8]+pck[9]+pck[10]+pck[11];
//Say('Ok');end;
if FromServer and(pck[1]=#$27)and(ReadD(12)=1060)thenbegin//1061 - idItem'a который мы хотим юзать, в данном случае Lesser Healing Potion
OID:=pck[8]+pck[9]+pck[10]+pck[11];
//Say('Ok');end;
if FromServer and(pck[1]=#$04)then MyID:=ReadD(18);
if FromServer and(pck[1]=#$0e)and(ReadD(2)=MyID)thenif ReadD(6)=4thenif(ReadD(14)<=1600)thenbegin//400 - кол-во ХП при котором начнется пьянка.
TimerHP.enabled:=true;
// buf:=#$14+OID+#$00#$00#$00#$00;// SendToServerEx(Leader);endelse TimerHP.enabled:=false;
end.