PDA

Просмотр полной версии : Изучение


Deffol
21.06.2011, 00:52
Привет всем. вот уже месяц почти изучаю л2пх, скриптописание в игре айон, очень часто шарюсь по разделам л2, беру примеры скриптов, нашел как в таймере отправлять пакеты с задержкой со скрипта Дуни ( вроде правильно ) :) точней как кто-то его назвал с его быдло-скрипта :rolleyes:
много всего для себя открыл, конешно понимаю что мои знания мизерные, читаю учебник паскаля. ну щас не об этом!
в айоне, да я думаю и в л2, множество пакетов, но некоторые идеи нельзя реализовать с помощью только пакетов, например мне интересно, как объяснить скрипту, что у меня мало хп и надо пить банку или, когда рядом игрок написать мне в пм об этом...этих данных нет в пакетах, по крайней мере я так думаю с моими знаниями, хочу узнать, как это узнавать и от куда брать данные, да еще и л2пх об этом объяснить, надеюсь на ваши посты без сорказма и иронии, мне действительно это интересно, хочу развиваться в этом и не останавливаться на скриптах по замене пакетов или таймере.

NLObP
21.06.2011, 01:06
Deffol, я думаю, что ты ошибаешься.

как объяснить скрипту, что у меня мало хп и надо пить банку
Из пакета 32=UserInfo узнаем HP/maxHP, по 18=StatusUpdate отслеживаем изменение и как только подойдет под наши проверки - начинаем пить банки
когда рядом игрок написать мне в пм об этом

Координаты в пакетах присутствуют: 79=ValidateLocation, 32=UserInfo, 31=CharInfo, 72=MoveToPawn. Берешь координаты сверяешь со своими и пишешь в ПМ.

PS: готовые скрипты посмотри, там многое из этого присутствует. Как минимум скрипты ботов посмотри.

Deffol
21.06.2011, 01:09
спасибо что указал, буду изучать пакеты! я так понимаю из пакетов можно извлечь эту информацию о моем хп например, то есть перевести байты и увидеть число и указать, что если число будет меньше, надо послать определенный пакет?

NLObP
21.06.2011, 01:13
Deffol, вот для примера

//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;

//************************************************** ****************************
// Вызывается при приходе каждого пакета, если скрипт включен
//************************************************** ****************************
begin
if FromServer and (pck[1]=#$27) and (ReadD(12)=1061) then begin //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) then begin //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) then
if ReadD(6)=4 then
if (ReadD(14)<=1600) then begin //400 - кол-во ХП при котором начнется пьянка.
TimerHP.enabled:=true;
// buf:=#$14+OID+#$00#$00#$00#$00;
// SendToServerEx(Leader);
end
else TimerHP.enabled:=false;
end.

dyh9l
21.06.2011, 02:12
Deffol, а разве у тебя расшифровка не показывает это сама?

Deffol
21.06.2011, 04:52
нет :) у меня нету расшифровки ниодного пакета, только CharInfo вроде, что-то в этом роде

dyh9l
21.06.2011, 04:54
нлобп вроде же писал инишку не?)

Deffol
21.06.2011, 12:02
я не спорю, просто на разных серверах бывают разные пакеты, да и разные версии клиента, может там типы пакетов другие просто

Deffol
26.06.2011, 07:35
а можно как нибудь в скрипте сделать, чтоб при например посылке пакета шел звук?

dyh9l
26.06.2011, 09:55
плагин звуковой писать, встроенного нечего нет

Deffol
26.06.2011, 09:57
а где можно подробней почитать об этом?

dyh9l
26.06.2011, 09:58
http://coderx.ru/showthread.php?t=890

Deffol
27.06.2011, 00:59
ох, спс, для меня это слишком :)

dyh9l
27.06.2011, 04:01
Для меня тоже)