L2PacketHackФорум программы L2PacketHack, всё что с ней связано находится тут.
Правила раздела!
Категорически запрещено:
* Просить пакеты/скрипты на шмот/адену/другие вещи;
* Просить (помочь) взломать/сломать сервак/аккаунт или раздеть/наказать кого-то на любом серваке;
* Просить научить работать с программой, если не понимаете элементарных вещей в отношениях клиент-сервер (так как, если вы их понимаете, то вопросов по основным возможностям программы быть недолжно);
* Все посты не удовлетворяющие этим запретам, а так же не относящиеся к теме будут удаляться при первой возможности.
* Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы.
* Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.
* Данные запреты неподлежат обсуждению.
Всем спасибо
Следующий вопрос
клиент посылает пакет , второй клиент его принемает , и отвечает на него действием
как написать скрипт
Код:
if fromclient (pck=('пакет действия')) then begin
pck:='';
///а вот тут нада сделать так чтоб посредником передачи пакета был не сервер а Л2ПХ
// тоисть чтоб отетого скрипта второму окну , ну к примеру пришло ПМ
// на которое скрипт запушеный на етом окне ответил действием
или тогда скажые другой способ...
ЗЫ кто не разобрался в скрипте с АЖХТМЛ кодом могу помоч) :)
Вот в теме "Что нужно знать для написания скриптов"
Цитата:
Сообщение от xkor
Например скрипт:
Код:
begin
if FromClient and (ConnectName='SokolA')
and (pck=HStr('1b 04 00 00 00')) then begin
buf:=HStr('45 00 00 00 00 00 00 00 00 00');
SendToServerEx('SokolB');
pck:='';
end;
end.
При получении от клиента играющего за чара с ником SokolA пакета 1b 04 00 00 00 (социальное действие "Victory") непропустит этот пакет и отправит пакет 45 00 00 00 00 00 00 00 00 00 (команда сесть) от имени клиента играющего за чара с ником SokolB, тоесть играете вы в два окна, в одном SokolA, в другом SokolB, нажимаете в первом Victory, и SokolB садится.
Следуюший вопрос....
как мне сделать скрипт в котором будут отправлятся пакеты на сервер при условии что
1 ЦП менше чем...
2 МП менше чем...
3 ХП менше чем...
как условия написать я знаю
а вот как из пакета выделить количество ХП МП и ЦП я не знаю....
при отправки пакетов на учение скилов или покупку оружия сразу дисконект идет. почему? серв шок-ворлд
Просто надо внимательно прочитать правила форума и для чего предназначена данная программа и все станет ясно, а если не станет, то не надо пользоваться программой, забанят и здесь и на сервере. :twisted:
Следуюший вопрос....
как мне сделать скрипт в котором будут отправлятся пакеты на сервер при условии что
1 ЦП менше чем...
2 МП менше чем...
3 ХП менше чем...
как условия написать я знаю
а вот как из пакета выделить количество ХП МП и ЦП я не знаю....
Как выставить задержку побольше? а то я ставил и 9999 и 9999999, помоему эффект одинаковый, может она вобще не включается?
Как сделать так, чтобы victory повторился 10 раз(с задержкой между повторениями), перед тем как перейти к выполнению advance?
__________________ Продаю адену на l2.ru Cadmus BlackBird Athebaldt
ICQ: 329-867-244
Следуюший вопрос....
как мне сделать скрипт в котором будут отправлятся пакеты на сервер при условии что
1 ЦП менше чем...
2 МП менше чем...
3 ХП менше чем...
как условия написать я знаю
а вот как из пакета выделить количество ХП МП и ЦП я не знаю....
Если еще не разобрался, то примерно вот так (требуются незначительные доделки):
Воспользуемся мониторингом статов чара (хп, мп, цп и координаты) by Shura1oplot модифицировав его с помощью скрипта на автохилки.
Код:
Const
Name='NLObP'; //имя чара
heal=1218; //Greater Battle Heal
potion=1060; //Healing potion
var
CharObjID,MyCorX,MyCorY,MyCorZ: integer;
MaxHP,CurHP,MaxMP,CurMP,MaxCP,CurCP: integer;
CharName: string;
TimerHP, TimerCP, TimerMP: TTimer;
procedure Init; //Вызывается при включении скрипта
begin
timerHP:=TTimer.Create(nil);
timerHP.OnTimer:=@OnTimerHP;
timerHP.enabled:=False;
timerHP.interval:=6000;
timerCP:=TTimer.Create(nil);
timerCP.OnTimer:=@OnTimerCP;
timerCP.enabled:=False;
timerCP.interval:=6000;
timerMP:=TTimer.Create(nil);
timerMP.OnTimer:=@OnTimerMP;
timerMP.enabled:=False;
timerMP.interval:=6000;
end;
procedure OnTimerHP(Sender: TObject);
begin
//выбрать что нужно
//MagicSkillUse(heal);
//UseItem(potion);
end;
//по аналогии напиши для CP, MP
procedure OnTimerCP(Sender: TObject);
begin
end;
procedure OnTimerMP(Sender: TObject);
begin
end;
//используем магию
procedure MagicSkillUse(MagicID:integer);
begin
buf:=#$2F;
WriteD(MagicID);
WriteD(00);
WriteC(00);
SendToServerEx(Name);
end;
//используем предметы
procedure UseItem(ObjID:integer);
begin
buf:=#$14;
WriteD(ObjID);
WriteD(00);
SendToServerEx(Name);
end;
procedure InitStats;
var
i: integer;
begin
CharObjID:=ReadD(18);
MyCorX:=ReadD(2);
MyCorY:=ReadD(6);
MyCorZ:=ReadD(10);
i:=22;
CharName:=ReadS(i);
i:=i+44;
MaxHP:=ReadD(i);
CurHP:=ReadD(i);
MaxMP:=ReadD(i);
CurMP:=ReadD(i);
i:=i+363;
MaxCP:=ReadD(i);
CurCP:=ReadD(i);
//добавляем проверки по вкусу
if (CurHP<=MaxHP-500) then TimerHP.enabled:=true else TimerHP.enabled:=false;
if (CurCP<=MaxCP-500) then TimerCP.enabled:=true else TimerCP.enabled:=false;
if (CurMP<=MaxMP-500) then TimerMP.enabled:=true else TimerMP.enabled:=false;
end;
procedure StatsUpdate;
var
i: integer;
begin
for i:=0 to ReadD(6)-1 do
case pck[i*8+10] of
#$09: CurHP:=ReadD(i*8+14);
#$0A: MaxHP:=ReadD(i*8+14);
#$0B: CurMP:=ReadD(i*8+14);
#$0C: MaxMP:=ReadD(i*8+14);
#$21: CurCP:=ReadD(i*8+14);
#$22: MaxCP:=ReadD(i*8+14);
end;
//добавляем проверки по вкусу
if (CurHP<=MaxHP-500) then TimerHP.enabled:=true else TimerHP.enabled:=false;
if (CurCP<=MaxCP-500) then TimerCP.enabled:=true else TimerCP.enabled:=false;
if (CurMP<=MaxMP-500) then TimerMP.enabled:=true else TimerMP.enabled:=false;
end;
procedure CorsUpdate;
begin
MyCorX:=ReadD(2);
MyCorY:=ReadD(6);
MyCorZ:=ReadD(10);
end;
BEGIN
//--- STATS BEGIN ---//
if FromServer and (ConnectName=Name) and (pck[1]=#$04) then InitStats;
if FromServer and (ConnectName=Name) and (pck[1]=#$0E) and (CharObjID=ReadD(2)) then StatsUpdate;
if FromClient and (ConnectName=Name) and (pck[1]=#$48) then CorsUpdate;
//--- STATS END ---//
END.
var
tick: Integer;
procedure Init;
begin
end;
function Pause(Timewait: Integer):Boolean;
// сквозная проверка без остановки скрипта (c)dmitry501
var
t : integer;
begin
result := false;
t := Round(Time*86400);
if t > (tick + Timewait) then
begin
tick := t;
result := true;
end;
end;
const
greeting=('1b 04 00 00 00');
victory=('1b 03 00 00 00');
advance=('1b 04 00 00 00');
yes=('1b 06 00 00 00');
begin
buf:=HStr(greeting);
SendToServer;
end; //ТУТ ВЫДАЁТ ОШИБКУ<<<<<<<<<<<<<<<
begin
if pause(2) then;//+ 2 секунды ожидания
end;
begin
buf:=HStr(victory);
SendToServer;
end;
begin
if pause(2) then; //+ 2 секунды ожидания
end;
begin
buf:=HStr(advance);
SendToServer;
end;
begin
if pause(2) then; //+ 2 секунды ожидания
end;
begin
buf:=HStr(yes);
SendToServer;
end;
begin
if pause(2) then; //+ 2 секунды ожидания
end.
добавил задержку, но скрипт выдаёт ошибку на END(в скрипте указанно место), подскажите что неправильно или чего нехватает.
__________________ Продаю адену на l2.ru Cadmus BlackBird Athebaldt
ICQ: 329-867-244
Даже не знаю как тебе помочь. Ты в программировании понимаешь? Зачем у тебя куча ненужных begin end;?
Почитай книги какие нибудь.
Вот формат скрипта для пакетхака:
Код:
//описываешь константы
const
...
//описываешь переменные
var
...
//описываешь вспомогательные функции (возвращает результат)
function Pause(Timewait: Integer):Boolean;
begin
...
result:=true;
end;
//описываешь вспомогательные процедуры (не возвращает результат)
procedere Pause2;
begin
...
end;
procedure Init; //Вызывается при включении скрипта
begin
//заполняешь если надо
...
end;
procedure Free; //Вызывается при выключении скрипта
begin
//заполняешь если надо
...
end;
//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
//заполняешь если надо
...
end.
можете мне показать шаблон скрипта, для отправки пакетов поочереди с задержкой? Тоесть эффект тотже самый что и в окне отправки пакетов, только тут должна быть задержка между пакетами.
__________________ Продаю адену на l2.ru Cadmus BlackBird Athebaldt
ICQ: 329-867-244